Implemented 'safeasi' option

When using Automatic Semicolon Insertion there are
certain edge-cases that you need to keep in mind.
Namely new lines starting with either `(`, `[` or
`/` because those may mistakenly be interpreted as
continuations of the previous line.

If you enable the 'safeasi' option jshint will
watch out for all the potentially unsafe
edge-cases, so you don't have to.
Merged `safeasi` option into `asi`
Allow expressions with a comma in switch case condition

The ES5 grammar specifies that the `case` keyword should be followed by an
expression (http://www.ecma-international.org/ecma-262/5.1/#sec-A.4) and that
an expression can consist of a comma-separated list of sub-expressions
(http://www.ecma-international.org/ecma-262/5.1/#sec-A.3), so the JSHint parser
should accomodate these commas.
Merge pull request #1586 from jonahkagan/expression-with-comma-in-case

Allow expressions with a comma in switch case condition
Merge pull request #1428 from Wizek/2.x

Extended `asi` option to be safer
Add ES6 globals. Closes #1551.
Fixed a bug where ignore:line wasn't working with undef and unused.

Closes #1389
Closes #1518
Closes #1328
Remove 'nomen'
Remove 'onevar'.
Remove 'passfail'.
Remove 'white' and 'gcl'.

Closes #1501.
Closes #559.
Don't check for white-space when parsing JSON.
Don't warn when Error() is used without 'new'.

Closes #1590.
Warn about invalid left-hand side of for..in.

Closes #1589.
Remove code for enforcing indentation.

Option 'indent' still exists, though, for correct character reporting.

Closes #1583
Closes #999
Closes #1085
Closes #1467
Closes #1404
Closes #713
Closes #428
Closes #1369
Closes #1254
Remove a line about style from README.

Closes #1500
Removed 'smarttabs' and stopped warning about mixed spaces and tabs.

Closes #1473
Closes #1530
Removed 'trailing'.

Closes #1554.
Added support for the Mocha test framework
Merge pull request #1597 from dalsgaard/2.x

Added support for the Mocha test framework