This is the same code we used before, but:
1. its in a separate package,
2. it also support new serialization to .d.ts,
3. OneOf is now supported entirely (instead of the previous hack).
Also, removed the schema.d.ts file and generate it before building the package. It is not git ignored and changing it will not work (it will be overwritten).
Also adding a new package, webpack, which is a plugin and loader for
webpack that adds support for AoT.
It is behind a `--aot` flag in the CLI that is supported by build and
serve.
Moving Angular-CLI into `packages/` and building the angular-cli.
The published packages will now have JavaScript only (with their d.ts), instead of being a mix of TypeScript and JavaScript, and it won't have the hacks of having a custom require extension to load the TypeScript.
Our development flow will be more streamlined, tools are going to be better (no more undefined symbols that are actually defined), and the npm packages will boot up way faster (since there's no more compilation during runtime).
Locally nothing changes, use `npm link` and run your local `ng`. Using the `npm` releases though it should be all javascript from the release.
The E2E tests also now uses the `dist` folder output to install in the new E2E app, making sure the process works for an app published to npm.
Note: Even though we're following the lerna structure, we won't be using their tool anytime soon.