Merge pull request #17 from regehr/master

add in-memory caching using a proxy Solver class that intercepts solver ...
canonicalize include file ordering

add Peter's coding style
Souper was crashing when invoked like this:

  souper foo.bc

The problem was that when the solver command line argument was missing, a Solver
object with a NULL BaseSolver was getting created, crashing later on. The fix is
to avoid creating the Solver and just return NULL when we don't have a
BaseSolver.
Merge pull request #18 from regehr/include-cleanup

code style stuff
Merge pull request #19 from regehr/fix-null-crash

fix null pointer crash