Need cstdio to get errno and strerror()!

Apparently libc++ doesn't complain about this when you're not using C++11, but it's the Right Thing To Do.
Add ADT/StringMap.h.
Let an ErrorReport report its error message.
Add exceptions.

This is really just the most sensible way to report certain kinds of errors.

We will probably use them more in DAG operations than AST parsing: in parsing, we want to continue parsing for a "little while" and output useful diagnostic messages if we can. Failures in semantic analysis, conversion to the DAG or backend operations are more fail-stop kind of things.
Add dag::File, dag::Rule.
Convert ast::Action -> dag::Rule.
Use C++11.

unique_ptr, move semantics, cleaner syntax... just go ahead and require it.
Running tests should depend on building fab!
Take "command = foo" as the command!