Fix issue with empty destructuring patterns

We were generating invalid code for `var {} = expr`.

Fix parsing of `import {} from 'name'` which in turn ended up with a `var {} = ...`.

Review URL: https://github.com/google/traceur-compiler/pull/522

Closes #522.
Add Promise polyfill
Fix Promise implementation to pass Promises/A+ tests
Add an extra indirection