Upgrades our build scripts to target ES2017 since they are run on modern versions of node
This allows us to remove shims for es6 features such as `Object.assign`, and also remove a few extra typings packages
Part of #60565
Adds a new `tsconfig.strictNullChecks.json` project that does not emit anything and is only used for enabling strict null checks on a subset of the vscode codebase.
Opt `iterator.ts` into strict null checking.
Fix our build scripts to properly handle `extends`
Tree Shaking:
- do not proceed with tree shaking when there are compilation errors
- load .d.ts files in the language service
- adopt TS 3.1.1 in symbol resolution
- use the real tsconfig.json / with "node" resolution
Bundling:
- fix issue where files were being looked for in out-build instead of out-editor-build
Using a custom version of the node typings is causing a lot of pain while trying to upgrade our build to use `@types` instead of the `d.ts` files we have to maintain. I believe we primarily maintain our own version for two reason:
- Custom require function
- setTimeout and other timer functions return NodeJs.timer instead of a number
These can both be delt with, the first by using interface augmentation and the second by switching to use any types for timer. I believe that the pain of maintaining our own node `d.ts` outweighs the benefits here
This change switches us to use the standard @types/node package for our node typings
* Upgrade appinsights
* Env, global updates before starting shared process
* Disable console logging from appinsights Fixes#55417
* Move workaround to helper