Fixes #826, Fixes #870 - Add Directive `jshint ignore`.

This adds the ability to cause jshint to ignore either a block of lines
or just a single line.

You can can denote the start of an ignored block like this:

/*jshint ignore:start */

Lines inside an ignored block will be effectively invisible to the
linter. They aren't even presented to the lexer for tokenization.
This is ideal for blocking out sections of code that don't even remotely
resemble javascript, such as inline JSX

(http://facebook.github.io/react/docs/jsx-in-depth.html).

Similarly, you denote the end of an ignored block like this:

/*jshint ignore:end */

You can also ignore a single line with a trailing comment:

// jshint ignore:line

However, the use case presented for ignoring a single line seemed to be
more for silencing one or more warnings / errors in what was otherwise
valid javascript code (contrasted with JSX, which will never execute as
javascript without a transformation step to javascript). The linter will
still complain of errors if the lexer can't parse out the comment token.