Refactored Global interface.
Refactored promise resolution.
Use process.nextTick or MutationObserver instead of setTimeout(0), if available.
Separated out SetConstructor, MapConstructor and PromiseConstructor.
Updated typescript to v1.4.0

- Union types.
- Switched default lib to lib.es6.d.ts
Use template strings.