Add option --require to support node require() calls for modules=register

Pass relativeRequire as argument to module instantitor.
ModuleTransformer adds 'require' parameter to module instantitor.
Fixes #1486

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

Closes #1507, closes #1486.
Fix FindVisitor to not start the visiting in the constructor

We used to call visitAny in the constructor, which lead to bad
API where we had to set things on this before calling super.
Add support for union type syntax
Switch to use a .d.ts file to define the parse trees

Instead of using a json file we now use a simple .d.ts file of
the form:

  interface ArrayLiteralExpression {
    location: SourceRange;
    elements: Array<ParseTree>;
  }

compared to the old json form:

  "ArrayLiteralExpression": {
    "location": [
      "SourceRange"
    ],
    "elements": [
      "Array<ParseTree>"
    ]
  },

At this point we still generate the json file but we could update
the other build scripts to read directly from the .d.ts. file
instead.