work towards allocating new bindings per-scope and per-for-loop-iteration
(#1571)
Merge branch 'master' of github.com:JuliaLang/julia into jb/newvars
get sysimg building with new binding behavior (ref #1571)

the most problematic change was forcing for loop variables to be loop-local,
instead of reusing existing local vars. for example

    local i
    for i = 1:2
    end
    return i

currently works and returns 2.

for now, the behavior is to introduce new variables for each iteration unless
we are overwriting an existing local. comprehensions, however, always
introduce fresh variables and never overwrite existing ones.
Merge branch 'master' of github.com:JuliaLang/julia into jb/newvars
Merge branch 'master' of github.com:JuliaLang/julia into jb/newvars
Merge branch 'master' of github.com:JuliaLang/julia into jb/newvars
remove redundant box allocation code now handled by :newvar
some newvar improvements:
  - don't need to re-null vars never used undef
  - don't need newvar nodes for (internal) local! decls
Merge branch 'jb/newvars' of github.com:JuliaLang/julia into jb/newvars
Merge branch 'master' of github.com:JuliaLang/julia into jb/newvars
move newvar nodes after initial line number nodes
Merge branch 'master' of github.com:JuliaLang/julia into jb/newvars
ignore newvar nodes in var occurrence checks
use NewvarNode type instead of Expr for newvar nodes
Merge branch 'master' of github.com:JuliaLang/julia into jb/newvars
Merge branch 'jb/newvars' of github.com:JuliaLang/julia