Position info fix: use the current token as the last token if only one token was consumed

The old behavior would use the previous token as the last token
Add support for expressions with type annos
Add support for functions with type annos
Add support for parameters with type annos
Add support for properties with type annos
Add support for variable declarations with type annos
Use custom parsing function for type literals
Recover from missing type anno
Hackfix for type annotation findNode()
Propagate function return types
Consume type dimension tokens