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
```

----

Just to put to rest any doubts about the extra code in `nextToken_`, I didn't notice any difference in build times, though I'm sure a micro benchmark might reveal something.

`//:lint` and `//:nolint` no longer immediately turn checking on and off. They set a flag that delays the changeover until the next token is read.

Basically, it works the way you'd expect it to now; no more quirks. See the updated tests for more details. The diffs on those tests are next to useless; you're better off looking at the files straight.