Fix for LLVM trunk changes that broke enableUnsafeAlgebraIfReduction.

This is the fix for a [problem](https://github.com/JuliaLang/julia/pull/6928#issuecomment-44044227)  where Julia built with LLVM 3.5 does not vectorize ```@simd``` loops containing reductions.

This patch is "monkey see, monkey do" quality.  I don't understand why LLVM trunk broke the idiom that I was using in LLVM 3.3/3.4 to traverse uses of an LLVM instruction.  So I copied  the idiom that  LLVM trunk ```LoopVectorizer``` uses, which is different than the one that I originally copied from LLVM 3.3 ```LoopVectorizer```.

The ```/*}*/''' is there to let text editors match the rest of the braces properly.