Wire getDefinitionAtPosition using the new compiler implementation

There are some changes in behavior between old and new implementation, namely:
* module definition used to start at the module name, now it starts the module keyword, which is uniform with other constructs
* Goto def on function call used to take you to the matching signature instead of the definition, now it is always the definition
* new implementation support goto def on labels
* new implementation support goto def on string property names (e.g. a["prop"])
* new implementation support goto def on /// references
Why do we have symbols surviving across type checking sessions.  That seems... ungood.