cleaning up some ghost dependencies.
refactoring instantiations to prepare for the weakening.
port to support changes to ExtLib.
adding a few more lemmas about instantiation.
changes to the Subst interface and some thoughts on Expr.
sketch of generic getInstantiation

- might want to make this monadic.
ExtLib port.
a few more features to McMtac.
fixing patterns to be more sensible.
fixing up Patterns.
dead code cleanup.
adding join_env, to be the inverse of split_env.
the actual theorem about expr_of_mpattern.
adding implicit arguments for Case and _mmatchAt
prove weakening + dead code elimination.
implicit arguments on join_env.
lemmas.
changing func from [nat] to [positive]

- a more general way to solve this is by completely
  abstracting the definition of [Func] but that requires
  a bit more abstraction
  - there may also be issues with extensibility.
fix up Repr to work with new implicit arguments.
weakening on lemmas.