Remove the need for inputFileExtension_

We no longer care what the file extension is since we do not append
a file extension when we resolve the module URL.

Fixes #1544
Refactor sourcemap generation to combine generator and sourceUrl.

This helps ensure the generator has the same sourceURL as the //# source.
Update SourceMap.js test.

Review URL: https://api.github.com/repos/google/traceur-compiler/issues/1561

Closes #1561.
Add Math polyfill

This implements the new ES6 Math functions.

The implementation is based on V8 and MDN as well as the spec.

The tests are mostly just smoke tests. I'm not testing a lot of
edge cases.
Make sure we reinitialize let bindings in loops.

In case we had a let bindings without an initializer inside a loop,
make sure we initialize it to undefined.

Fixes #1567
Array destructuring should use iterators

The assignment

  [x] = obj;

should desugar to something like:

  $tmp = obj,
  $iter = $tmp[Symbol.iterator](),
  $iterResultObject = $iter.next(),
  x = $iterResultObject.done ? undefined : $iterResultObject.value;
  obj

When you add holes, spread and default initializers it gets even
hairier.

Fixes #840
Implement `Promise.all(iterable)`
Only turn member variables into getters/setters if type assertions on

fixes #1530

Generating getters and setters is a way to add assertions on the return
type and argument.
However getters and setters are generally slower (V8 expected) then they
are only generated when required (type assertions on).
Support passing a moduleName for a single file compiles.
Add basic support for goog.module (Closure) based imports.

- option to enable Closure modules
- golden file based tests
- based on moduleName for the current file
- fails for export *