Generalizing the Prover interface to support more types of predicates.

- Fixes Bug #10
- Will now support ILogics
- Expanding this even further could unify a lot more ideas,
  at the limit, this is just a "thing that reasons with known facts."