ES6 typings

This is still work in progress. Feedback is appreciated.

Still missing:
- Typed arrays
- Promise
- Reflect
- Loader
- Use of known symbols

Why this is commented out? and shouldn't we use Symbol.iterator?