added fullTypeCheckFlag to TypeChecker

LS now uses 2 instances of typechecker:
-  `typeInfoResolver` - created via `getTypeChecker(/*fullTypeCheck*/ false)` - used by quickinfo\dot completion etc..

- `fullTypeCheckChecker` - created via `getTypeChecker(/*fullTypeCheck*/ true)` - used to get semantic diagnostics.

`fullTypeCheck` parameter in the `getTypeChecker` controls if typechecker can shortcut and answer more quickly (producing less error messages but they are still ignored when `fullTypeCheck === true`)
you know what.. here is a better idea, a new layer of abstraction :). so we have two new methods, getTypeInfoResolver() and getFullTypeChecker() and we create them on demand instead of in synchostdata.. this way you only create the ones you need. synchostdata sets them to undefined.