very ugly (but complete) proofs

- I need to factor out the common lemmas related
  to mentionsU and instantiate and declare them
  somewhere.
- Maybe [mentionsU] should go into Expr?
- Maybe [instantiate] should go into Expr?
Massive code cleanup (still more to come)

- Removed old Prover and EProver interfaces
- Ported AssumptionProver and DefaultProver
- Removing old Subst interface
- Removing old implementations of SubstI
- Lemmas inside ExprProp.
More refactoring (mostly renaming).

- EProver2 -> EProverI
- Prover2 -> ProverI
- SubstI3 -> SubstI