Experimental bundle support.

RelocatableModuleTransformer create calls to ModuleStore.register(name, deps, func),
where deps is an array of module-specifiers (unnormalized names).
Add ModuleStore.register(name, deps, func), fills bundleStore[name].
Check bundleStore during load processing, after module registry, before fetch.
If hit, create BundleCodeUnit, a TRANSFORMED codeUnit with
properties {deps, execute}.
The BundleCodeUnit participates in the remaining load processing.
Upon evaluation the [deps] are normalized and passed as names to the execute() function.

Fixes issue #754

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

Closes #764.
Add make ONLY flag: 'make ONLY=Arrow test/features' to run Arrow tests

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

Closes #794.
Refactor pretty printing to handle the white space at the AST level

We previously determined when to add the whitespace at the token level. That lead to a bunch of complicate switch statements. With this we handle the formatting at the AST level which simplifies the code significantly and it also allows us nicer result.

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

Closes #795.
Expose LoaderHook functions on Loader class

Normalize, locate, and fetch tested.

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

Closes #796.
Rename code generation starget function ModuleStore.registerModule -> Sy...

...stem.register()

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

Closes #797.
Use baseURL through out System; set to absolute path.

Remove rootURL, thread baseURL through Loader code.
On node, replace ./ by absolute path so error messages make sense.

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

Closes #800.
Type assertion update

This is a big commit that contains three changes described below.

Originally it was three different commits as it should be, but during the code review I significantly changed the whole thing and so it would take me a lot of time to split it back into coherent commits, as all the changes depend on each other.

1/ assert all arguments with assert.argumentTypes()

```js
function request(url: String, callback: Function) {}

// before:
function request(url, callback) {
  assert.type(url, String);
  assert.type(callback, Function);
}

// after:
function request(url, callback) {
  assert.argumentTypes(
    url, String,
    callback, Function
  );
}
```

Instead of asserting each argument on its own, we assert all of them. That has benefits:
- we can show all errors (instead of throwing on first incorrect argument),
- we can show incorrect arg position.

2/ assert function return value with assert.returnType()

```js
function reverse(str): String {}

// before
function reverse(str) {
  return assert.type(str, String);
}

// after
function revers(str) {
  return assert.returnType(str, String);
}
```

There are some advantages of this approach:
- the assert library can show different error for return value (eg. "Function has to return x"),
- the assert.returnType() has to return the actual value, but assert.type() does not have to.

3/ replace value types with assert.x

```js
function foo(a: string, b: number, c: boolean, d) {}

// transpiles into
function foo(a, b, c) {
  assert.argumentTypes(
    a, $traceurRuntime.type.string,
    b, $traceurRuntime.type.number,
    c, $traceurRuntime.type.boolean,
    d, $traceurRuntime.type.any
  );
}
```

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

Closes #791.
Implement TraceurLoader.version to identify traceur as System.version

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

Closes #801.
Add test for promise.catch(); refactor Loader tests to use catch().

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

Closes #788.
Ensure that codeUnits have non-empyt .url for source-maps.

The source-map code won't take null.
Centralize the name-invention for possible future improvement.
Name anonymous sources with serial numbers.

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

Closes #803.
Update to use node 0.10

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

Closes #809.
Remove unstarred generator

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

Closes #804.
Fix issue related to parsing yield

yield should be treated as an identifier in non generator function in non strict mode.

Also handle no lineterminator here between yield and *.

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

Closes #806.
Fixup AnonSourceMap test

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

Closes #808.
amd with module detection