Intellisense features: jump to definition and background error highlighting

This is a big chunk of work. Main features:

1. Reworked communication so that most things can be handled asynchronously to avoid blocking the editor.
2. Jump to definition.
3. Background error highlighting.
4. Automated integration test suite for the emacs code, including communication with fsautocomplete in the loop.