LLVM 3.2 name change: TargetData to DataLayout

Adding a conditional #include for each version, although I think these
all should probably go.
In LLVM 3.2 a few functions removed their arguments.
Adding/removing a pass (same pass?)
Adding cflags to incorporate the C++ options.

This isn't really that clean, as it adds some noise (in the form of warnings)
to the build output. However, I don't know a better way to take the necessary
build flags from llvm-config (ie, -fno-rtti).
Adding LLVM 3.2 version numbers here and there.
Eliminating a dynamic cast in case of no rtti.

LLVM 3.2 may not be compiled with RTTI, which means we'll have trouble later
if we try to link this library with RTTI.