looking at parameterizing by func

- The question is whether this retains the right
  compositional behavior.
a messy instantiation of RFunc.
some notes about EnvFunc.
Merge branch 'master' into extendable

Conflicts:
	src/Ext/ExprCore.v
	src/Ext/ExprD3.v
	src/Ext/ExprDI.v
	src/Ext/ExprFacts.v
	src/Ext/ExprLift.v
	src/Ext/ExprT.v
	src/Ext/ExprUnifySyntactic.v
	src/Ext/FMapSubst.v
	src/Ext/Types.v
	src/Makefile
Documentation on TypesI.
The start of lambda (porting mostly from Ext)
a sketch for what operational semantics mean for Lambda.
adding ExprDI to the Makefile.
tactics to make reasoning about expr easier.
a nicer formulation that solves expr accessibility proofs.
factoring out RSym (renamed RFunc) and renaming typ constructors.

- Pull common code out of ExprCore
- Change tvArr -> tyArr
- Change tvProp -> tyProp
- Change tvType -> tyType
fixing RType and porting Ext

- Removed typ_of_apply
- Removed instantiate_typ
- Renamed typ_cast to type_cast
- Renamed typ_eqb to type_eqb
- Renamed funcAs to symAs
- In Lambda
  - Implement type_of_apply using tvArr
add semi-decidable equality to RSym + examples

- Added semi-decidable equality to RSym
- Porting examples to work with the new extendable branch
- Started refactoring the mtac example (still a ways from
  being correct). I need to figure out a litle bit about
  the specification.
  - Also, note that McBride showed how to define unification
    using well-founded recursion.
bug fix in red_exprD.
port to work with new tactics, fix some tactics.
Merge branch 'extendable' of github.com:gmalecha/mirror-core into extendable

Conflicts:
	src/Ext/ExprTactics.v
making wf_expr_acc transparent.
a semi-working, but not proven setoid rewrite.
Merge branch 'extendable' of github.com:gmalecha/mirror-core into extendable
changing the definition of type_cast to expose the equivalence.