Moved building an inference chain out of the Proof solver an into its own
class, to let their logic vary independently.
Added inference by depth-first search, though it seems faulty. Added many
test cases for inferences, etc
Added inference reasons to sub-proof conclusions
Changed main inference search to breadth-first.
This involved changing TruthEnvironments to refer back to their parents,
rather than modifying the same environment over the course of a search.
Merge pull request #7 from jbauschatz/solver

Solver