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
Is it still `null` or is it `undefined`?