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`)
do not create it here. create it on demand. this will do a full bind, and unless the current operation is getSemanticDiagnositcs, this is wasted.