Merge pull request #1 from manueljacob/master

Apply pull request from Manuel.  Changes include:
- Support for the cmake build system
- Moving a symbol definition to avoid a link time issue with llvm-nm (which, oddly, only Manuel sees)
Run clang-format on some source files.
Avoid possibly confusing variable name "use".
Use Value::hasOneUse() and Value::use_empty() here.
Rely on the compiler to print a warning if forgetting an enumeration
value.
Use range-based for loops.
Remove virtual keyword and add override keyword.
Use nullptr instead of NULL.
Do not use namespace std, as per LLVM coding standards.
Simplify some uses of map/set's find() method to use count() instead.
Simplify code in SafepointIRVerifier::runOnFunction():

Avoid construction of extra set "nowvalid".  Move construction of
"invalid" set to earlier in this function and remove valid Values from
it.
Simplify code in SafepointMachineVerifier::runOnMachineFunction():

Avoid construction of extra set "validByDef".  Move construction of
"invalid" set to earlier in this function and remove valid registers
from it.
Add static keyword to command-line option definitions.
Simplify some code using iterators.

* Replace std::distance(X.begin(), X.end()) -> X.size()
* Replace X.begin() == X.end() -> X.empty()
* Prefer preincrement, as recommended by LLVM Coding Standards