Update to LLVM HEAD.

Recent LLVM changes have modified the layout of include directories and restricted the functionality of BasicBlockPass.

Since we can't modify the Module from a BasicBlockPass's initialisation method any more, promote the TeslaCallerInstrumenter to a FunctionPass (which can).