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
yeah.. this one did not feel right; the main problem is that the object structure does not clearly indicate how it should be used, and that it can host two different results.