Pass DataLayout to LLVM and add target analysis passes

This information is required by the loop vectorizer, but may benefit
other analysis passes as well
Loop vectorizer proof of concept

With these changes, Julia can now vectorize a simple loop.
Unfortunately, these changes are unacceptable. I've changed addition to
produce undefined behavior on signed integer overflow, and I've changed
jl_value_t from an LLVM structure type to a pointer to an Int8.