Cleanup

* Use JSDoc when possible
* Switch return types from Language Service public APIs to interfaces
* remove unused files
* remove references to 'foo' from user facing messages
I'm personally just bigger on explicit over implicit. Plus, not having that there adds mental overhead of trying to figure out the specific type I'm dealing with.