Provide --enable-cxx11 configure option to enable building with C++11.
For LLVM >= 3.5 explicitly force this to be enabled otherwise we can't
compile against LLVM.

 - Some minor tweaks to the configure logic by me (Daniel Dunbar), to ensure C++
   compiler is tested before these checks run, and to properly restore CXXFLAGS.
[LLVM3.5] Don't try to use DEBUG macro without DEBUG_TYPE.
Fix compilation error due to change in raw_fd_ostream for LLVM3.5
[LLVM3.5] Update for CallSite.h move into IR/.
[LLVM3.5] Update for move of CFG.h into IR.

 - Mostly fixed by removing unnecessary references.
[LLVM3.5] Update for more random headers moving around.
Fix LLVM3.5 compilation due to switching to std::error_code
[LLVM3.5] Drop use of PassNameParser, which we don't even use anymore.
Fix LLVM3.5 compilation. This is due to r202168
[LLVM3.5] Ensure Twine definition is available from Executor.h.