Currently the caching in the Language Server creates and destroys a lot of objects, in particular converting sidecar objects into cache objects, which is basically the same thing with a little decoration.
This object creation/deletion, isn't really needed and causes undue GC stress. We should refactor it to use the SideProtocol objects directly.