use hasOwn here, and initialize map_size to 0, not size
allow null in the init slot of a VariableDeclarator
don't die if a given ast node doesn't have a location when trying to report a warning/error to the user.
replace the closure-conversion passes (ComputeFree, LocateEnv, SubstituteVariables) and MarkLocalAndGlobalVariables with NewClosureConvert, which does a *much* better job of placing environment creation, as well as picking the right environment to use for closures.
WIP checkpoint.  all tests pass except sieve, and we can't self-host
all tests pass (finally)
remove some spew
finish up the new closure conversion stuff.  must document everything.
comment out all the spew, and factor out flatten_func_envs
remove some old comments
stage1 should use the es6 version of new-cc.js
DRY
fix infinite loop
new-cc puts the environment parameter name in
in DesugarArguments we need to make sure to put the key back into n.key, not into a local.  also for class methods set their name to 'ClassName:MethodName'.  lastly, add an argument to argPresent which lets the compiler know we have a default argument.
make analogous changes to the es6 version
add symbol_specops, since compiler uses it.
don't need this pass now
don't invoke the callback in #forEach for array holes
add some new tests/expected output