Refactor the compiler options.

Define default options in class constructors.
Export ToAmdCompiler and ToCommonJSCompiler with corresponding defaults.
Remove options unique to api (not on command line).
Add option moduleName (default true) to support commonjs w/o __moduleName.
Option moduleName takes string, empty string for no __moduleName, or '+' for
  resolve filename.

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

Closes #1079.
Export default declarations should introduce a binding

`export default class C {}` should introduce a binding for C in
the current scope.

Fixes #1062
Remove invalid spread call optimization

Make sure that we always use the iterator for spread calls with only one
parameter.

Fixes #1049
Optimize how we validate cover grammar

When we convert a CoverFormals to a ParenExpression we only need
to check that there is no direct RestParam child.

For the CoverInitializedName we count the seen instances. Using
this we can determine if there have been any since an eralier
point in time and we can skip the expensive tree visitor.