Issue #1371: Move character val to end of '!=' or '=='

Signed-off-by: Anton Kovalyov <anton@kovalyov.net>
Issue #1417: Set inscript default to false to prevent false-positives

Signed-off-by: Anton Kovalyov <anton@kovalyov.net>
Issue #1391: Handle malformed package.json file

Signed-off-by: Anton Kovalyov <anton@kovalyov.net>
Issue #1415: Implement exclude-path to pass custom .jshintignore files

Signed-off-by: Anton Kovalyov <anton@kovalyov.net>
Issue #1426: Make some Node globals writeable. Props to @Raynos
Issue #350: Make shadow check for outer scopes as well

Signed-off-by: Anton Kovalyov <anton@kovalyov.net>
Issue #1431: Check whether this.right exists when parsing ++
Issue #1378: Escape special characters for better output
Issue #1375: Make sure _.zip always receives an array
Issue #1350: Upgrade Browserify to 3.12
Issue #1362: Make sure 'let' variables are not treated as globals on assignment
Issue #1364: Make exported and global directive work together better
Issue #1349: Remove var window from browserified files
Issue #1242: Make unused option recognize constants.
Issue #1367: Make 'funcscope' recognize try/finally blocks as well
Issue #1394: Allow var variables to shadow let variables.

I added a new meta-property to the block-scoped stack of
variables called (shadowed). When addlabel adds a new
function level variable it checks whether there's already
a block-scoped variable with the same name in the current
scope and if there is, it sets the (shadowed) property of
that variable to true. getlabel function respects that
property and doesn't return variables with (shadowed) == true.

At the end of doFunction we go over a list of all variables
defined in this function and un-shadow their block-scoped
friends if needed.

A bit hacky but I don't have any better idea right now
that doesn't involve big refactoring that merges blockscope
and funct trees together.
Issue #1388: Warn about missing 'use strict' in files w/o funcs
Issue #1363: Don't consider => params as undefined vars
Version 2.4.0; Holidays edition
Issue #1433: Remove overzealous W092

Signed-off-by: Anton Kovalyov <anton@kovalyov.net>