specify timeout to solver on the command line
Roll LLVM to r213048

This incorporates a bug fix for the ExecuteAndWait function that fixed the
timeout functionality.

Also includes a number of API updates relating to the transition from
llvm::error_code to std::error_code in LLVM.
Merge pull request #23 from regehr/timeout

specify timeout to solver on the command line
Implemented mulnsw with method proposed by Peter
fix a bug where the Clang pass aborts compilation upon solver timeout
Merge pull request #25 from regehr/timeout-fix

fix a bug where the Clang pass aborts compilation upon solver timeout
Added klee expressions for all test cases

TODO:
- Found an interesting test case "Mul16Bit" integrated in unittests.
Using Peter's approach of mulnsw, souper can't report any missing
optimizations. Whereas, the previous approach we implemented optimizes
it to true. Need to analyse more about it and then conclude which approach
is better. Just for refernce, added our previous approach of mulnswUB
as comments.
Merge remote-tracking branch 'upstream/master' into undefined
Replaced instruction uilding functions by direct expressions