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.
Merge branch 'master' into getopt

Used '-X ours' strategy option.
getopt.js: Use 'Object.create(null)' to simplify the code.

Due to 'this.opts_' now being usable as a real dictionary, we don't have
to prepend '--' anymore.
getopt.js: remove unnecessary 'optdata'.

After playing with the api for a bit, I've come to the conclusion that
this clutters the interface without offering anything that isn't more
easily and flexibly done in user code.
getopt.js: use 'o.prototype = {x: ...}' instead of 'o.prototype.x = ...'
getopt.js: Add error and info messages via 'Getopt.message'.
getopt.js: make free arg message similar to option message.
getopt.js: allow the empty string as an option arg.
getopt.js: Remove unnecessary conditional.

It doesn't hurt to always reset 'nextchar' to zero in the '::' case.
You could even consider it something of an optimization.
expand-js-template.js: use 'Getopt.message' for error messages.
getopt.js: implement short option aliases for long options.

This is mostly a convenience, so I wonder if it's even worth doing.
One side effect of this change is that you can't tell whether you got
there via long option or short option. I think that I need to fix this
before I can consider it api-ready.
Revert "getopt.js: implement short option aliases for long options."

This reverts commit 6ff7165e32bb834150903ea90920b177f365f0f7.

'optdata' can cover this case while being more flexible.
Revert "getopt.js: remove unnecessary 'optdata'."

This reverts commit eee0bfe082aa013478f0f22ded552eb999e27f5b.

Conflicts:
	src/node/getopt.js

The re-indent caused merge conflicts.

The problems with 'optdata' are not really as big as I thought they
were. I don't need to provide accessors or iterators. All 'optdata' can
independently modified, accessed, and iterated over as long as it is
assigned to an object.

Once that is considered, the advantages outweigh the (minimal) extra api
weight.