Wrap Node.js modules (just fs for now) and async functions (process.nextTick) to work with await.

BUG=https://github.com/google/traceur-compiler/issues/19
Merge pull request #237 from eddyb/node-deferred-wrapper

Wrap Node.js modules and async functions to work with await.
Handle '//:lint' and '//:nolint' comments.

Currently this only disables 'strictSemicolons' inside 'nolint' zones.

The transition from 'nolint' to 'lint' is a little tricky since comments
are not tokens, meaning that for proper transition back to 'lint' mode,
you need to make sure there is a semicolon (i.e. you have to manually
add a token) either before or after the 'lint' to make sure any errors
from the 'nolint' side don't leak through.

- Add 'ignoreNolint' option.

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

Review URL: https://codereview.appspot.com/7801048
Patch from Ben Chan <usrbincc@yahoo.com>.
expand-js-template.js: use nolint for files matching --nolint=pattern.

- Turn on nolint for the 'source-map' library.

BUG=None
TEST=None
Interpreter: Normalize flags in the arguments before processing them.
package.json: Require a specific version for 'source-map'.

This will ensure reproducible builds for any checked-out commit of
traceur.

BUG=https://github.com/google/traceur-compiler/issues/243
TEST=None
Merge pull request #248 from usrbincc/stable-source-map-version

package.json: Require a specific version for 'source-map'.
Merge pull request #247 from usrbincc/js-template-nolint

expand-js-template.js: use nolint for files matching --nolint=pattern.
Merge pull request #246 from eddyb/interpreter

Interpreter: Normalize flags in the arguments before processing them.
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.