Formal parameter names can be the same as function name. Fixes gh-1928
Correct line number reported with "empty block"

Ensure the warning references the line of the opening brace of the block
body.

Resolves gh-1700
Improve null-reference-accepting operators

Operators `typeof` and `delete` both accept null references, so JSHint
should not warn when their sole operand is a undefined variable, nor
should that identifier be included in the `implieds` array of the
generated report.

A runtime error will occur if the operand is an expression containing
the undefined identifier, so a warning should be issued in this case.

This patch also addresses an existing bug where property identifiers
with values "typeof" or "delete" were incorrectly interpreted as unary
operators when marking variables as unused.

Resolves gh-1881
Add dependency badges.

Also, use a more logical header order.
Reorder badges.
Add Document to browser globals
Removed "test: " from test titles. Fixes #1952

Many of the unit tests had title beginning with "test: ". This creates
useless noise in the test output because we already know each line is
the result of test.

This commit removes these prefixes.
Move options to separate file

In addition to making the source code more approachable, this will
better-facilitate upcoming improvements to project documentation.
Move environment options to correct object
Incorporate option documentation from JSHint
Document previously-undocumented options

Skip options that have been deprecated.
Group parser tests for concise methods
Add explicit tests for W027

This functionality was not previously covered by tests.
Fix bug in detection of unreachable statements

Ensure that when braceless block bodies contain braceless block bodies
(as is possible when the single statement has a function expression),
the parser correctly differentiates between branches when detecting
unreachable statements.

Achieve this by using a token decorator attribute (which is local to the
statement) instead of a global variable (which cannot account for
nesting).

Resolves GH-1387
Fix bug in parsing of concise methods

When the ES6 concise method syntax is used to declare a method, no new
entry is created in the local environment record. Because of this, the
method name should *not* be interpreted as a local variable, and
declaring a variable of that name should raise no warnings.

Resolves gh-2022
Merge pull request #1959 from jugglinmike/empty-block-line-no

Correct line number reported with "empty block"
Merge pull request #1992 from jugglinmike/1881-vars-to-null-accepting-operators-6

Improve null-reference-accepting operators
Merge pull request #1929 from caitp/issue-1928

Formal parameter names can be the same as function name. Fixes gh-1928
Merge pull request #2011 from nevir/patch-1

Add Document to browser globals
Merge pull request #2025 from jugglinmike/1387-unreachable

Fix bug in "unreachable" warning