Fixed bug introduced from previous refactoring.
Switched to in-development TypeScript compiler.

- Union types.
- Switched default lib to lib.es6.d.ts
Implemented @implements annotations in JSDoc and documentation generator.
Use quasis for building strings.
Use destructuring assignment and shorthand property names.