Adr/trunkvec

I'll reopen the pull request after I've tested it with LLVM 3.3 and 3.4.  It fixes the problem described in #7504 and also cleans up muddled usage of ```llvm::EngineBuilder```.
With LLVM trunk, passing the empty string as the mcpu argument no longer selects the host microarchitecture.  E.g., you don't get AVX on a Haswell machine.  Passing ```sys::getHostCPUName()``` fixes the problem.