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
Allow building llvm from git; support llvm3.4svn

This adds makerules for building LLVM from latest upstream git master to be able to try out new versions.
This also adds support for the changed APIs as of yesterday's LLVM master.
Align unsafe_store!/unsafe_load semantics
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
fix 73555344 per @vtjnash's suggestion
Merge branch 'master' of github.com:JuliaLang/julia into jb/newvars
ignore newvar nodes in var occurrence checks
Merge pull request #3983 from JuliaLang/kf/unsafestore

Align unsafe_store! semantics with unsafe_load semantics
Merge pull request #3984 from JuliaLang/kf/llvm34

Allow building llvm from git; support llvm3.4svn
provide method for converting MathConsts to Float16.
use NewvarNode type instead of Expr for newvar nodes