Issue #350: Ported commit e8137df from 2.x
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 assign
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.

See 9930e68264f23e7c8289b7f9b75eec52679e06e3 for more info.
Issue #1388: Warn about missing 'use strict' in files w/o funcs
Issue #1363: Don't consider => params as undefined vars
Issue #1439: Make extend option to overwrite in the right direction

Signed-off-by: Anton Kovalyov <anton@kovalyov.net>
Issue #1449: Replace for..in loops with forEach where appropriate
Issue #1451: Fix a regression caused by #1388
Issue #1123: Make checks for generator functions without yield optional