PNaCl: Propagate more debug location information.
PNaCl: Track upstream changes to -promote-i1-ops.
PNaCl: Use SmallVector from LLVM instead of std::vector.
PNaCl: Split alloca simplification into its own pass.

Previously, this transformation was done in
-replace-pts-with-ints. Additionally, trunc or zext to int-pointer all
non-int-pointer sized dynamic allocas for completeness.

I did this in Rust's LLVM to make it easier to read while diff-ing.

BUG= none
TEST= (cd toolchain_build/out/llvm_i686_linux_work && make check)
R= mseaborn@chromium.org, jfb@chromium.org