This is the beginning of strict mode parsing.

* Fix how we detect use strict directive to handle multiple directive prologue statements.
* Fix to use the exact character sequence
* Make FunctionBody and Program check for use strict directive
* Make Class and Module strict by default
* Disallow with in strict mode.

Partial fix for issue #242

Tests
*  test/feature/Syntax/Error_WithInClass.js
* test/feature/Syntax/Error_WithInModule.js
* test/feature/Syntax/Error_WithInStrictFunction.js
* test/feature/Syntax/Error_WithInStrictProgram.js
* test/feature/Syntax/UseStrictEscapeSequence.js
* test/feature/Syntax/UseStrictLineContinuation.js
Merge pull request #245 from arv/parser-strict-mode

Parser strict mode
Fix transitions between 'lint' and 'nolint'.

- No longer necessary to insert a semicolon for 'nolint' to 'lint'
  transitions.
- Fix uncaught semicolon errors on 'lint' to 'nolint' transitions.
- Fix false positive with '//:nolintnot'.
- Make the tests a little easier to follow.

BUG=None
TEST=test/feature/Syntax/Error_StrictSemiColonsNoLint.js
     test/feature/Syntax/StrictSemiColonsNoLint.js

Closes #244
Implement 'inlineAndCompileSync'.

- Add 'loadSync' and 'loadTextFileSync' methods to InternalLoader.

Review URL: https://github.com/google/traceur-compiler/issues/250

Closes #250.
Strict mode parsing: Handle strict mode future keywords

This handles BindingIdentifier and IdentifierExpression.

It does not yet go back and check the parameter names in a strict function.

Part of issue #242

Review URL: https://github.com/google/traceur-compiler/issues/252

Closes #252.
Move traceur.getUid to util/uid.js

Closes #258
Remove MissingPrimaryExpression tree and introduce SyntaxErrorTree

This cleans up some of the error cases. The parseX_ methods now never return
null, instead they return a SyntaxErrorTree.

Closes #257
Handle future reserved keywords in parameters

If, after parsing the function body, we changed from non strict to strict mode
we go through the parameters to ensure we do not have an future reserved
keywords.

Part of #242

Review URL: https://github.com/google/traceur-compiler/issues/256

Closes #256.
expand-js-template.js: Add '--deps' option to print deps to stdout.

- Hook automatic dep generation of js-template files into 'Makefile'.

BUG=None
TEST=None

Review URL: https://github.com/google/traceur-compiler/issues/251

Closes #251.
Update CONTRIBUTING.md

No need for people to manually squash after LGTM. We will do that as needed.
Add Travis CI configuration

Fixes #249
- Add basic node build and test execution
- Add build badge to README

Review URL: https://github.com/google/traceur-compiler/issues/266

Closes #266, closes #249.
Fix synchronous loading of modules

Async module loading got broken by ecafec3b59ad218c11133fec63e73bf83c4fc068.

Fixes #264

Review URL: https://github.com/google/traceur-compiler/issues/265

Closes #265, closes #264.
Update README.md

Remove moving notice
Make runtime available during traceur load.

The intent is to be able to use the full feature set of traceur during
load time, since the runtime is loaded to the stable '$traceur' name
before 'traceur' is.

Review URL: https://github.com/google/traceur-compiler/issues/254

Closes #254.
demo/repl.js: update to use '$traceurRuntime'.

This is a follow up to af15b37c95b014a473176df2dcf4687b83f2d825

Closes #273
Make traceur modules available during traceur load.

The use case is to be able to "import * from '@iter';" during module
load. In addition, this will allow all compiled files to use the same
construct, provided that 'src/runtime/runtime-modules.js' is linked in
as well.

Closes #274
Implement traceur.require Fixes #239

This adds a `require` method to the `traceur` object (in Node.js only) which allows you to require js files that go through traceur just like you would require any other js file in Node.js.

```js
var traceur = require('./src/node/traceur.js');
var x = traceur.require('./x.js');
```

or

```js
var traceur = require('./src/node/traceur.js');
traceur.require.makeDefault();
var x = require('./x.js');
```

Fixes #239

Closes #270
Fix 'runtime-modules.js' pulling in almost all of traceur.

This is a follow up to ab1ad6ab676ae46e71b942050b5f4a617973a42a

Now 'src/runtime/runtime-modules.js' only contains the minimum needed
to handle 'getModuleInstanceByUrl'. This means that, except for
'src/util/url.js', we really can import from standard modules during
'traceur' load.

In addition, as before, compiled code can do the same thing, but now
with the minimum amount of extra runtime weight.

Closes #275
Implement a 'getopt_long'-style interface. Use in 'expand-js-template.js'.

The behavior is similar to 'getopt_long' with
- 'optstring' param starting with '-:',
- 'opterr' set to 0, and
- 'optind' set to 2

See 'man 3 getopt' for details.

'argv' is not permuted. No errors are printed. For code simplicity,
'-o' and '--o' are considered equivalent. Abbreviations implemented.
'--' not implemented for now (easily done in user code).

Closes #262
Remove ErrorReport reportWarning

This was not used anywhere.

This also removes the dependencu in Closure mocking framework.

Closes #271
Closes #276