Add parsing support for type generics

Aka TypeArguments. The syntax is taken from the TypeScript spec
and here are some examples:

Array<number>
Map<number, boolean>
a.b<c, d.e, f.g.h>
Correct the relative path for traceur-loaded nodejs modules.

Using Module._compile() causes evaled code to require() relative to the
caller of _compile(). We want the require() to be relative to the file containing
the es6 code we transcoded.

Here we include a file-local function `require()` during transcoding of modules.
The local require() calls a runtime function with the module name and the required path.
The runtime function resolves the required path iff its relative.

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

Closes #1434.
Add missing file from previous commit.

TBR=@arv

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

Closes #1454.
Make types work in placeholder parser

This requires the parser to take an option object.
PlaceholderParser: Allow null in type context

This is so that you can do:

  parseStatement `var x: ${null};`

result in

  var x;
Add support for class member variable
Type asserts: Fix issues with TypeName and asserts

The assert functions we used for testing was wrong. It did not
handle number vs Number.

We also dropped the `moduleName` of the TypeName on the floor.