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`)
My preference in avoiding errors is to leave only one way that will do things right. Since accessing variable directly might fail without prior check - then this only was should be "always use function, do not touch the variable"