Fix hoisting of let/const declarations.

Only hoist top-level let/const declarations and fix bug with
initializers of hoisted declarations.

Fixes #1028.
Array.from polyfill
Simplify command line and options processing.
Remove some special case flag processing and rely on commander.js more.
Move referrer option from System to options.js.
respond to review
fix formatting
fix more formatting