* Made the primitive form of elim (elim t_0 t_1), allowing this form to be
considered a value when t_0 and t_1 are values.
* Moved definition of values to reduction language, and fixed it. This
fixed issues with unique decomposition, and thus fixed reduction of
eliminators.
* Enabled caching in apply-reduction-relation* to speed up results of
recursive calls.
Fixed eliminator reduction for eliminators of inductive types whose
constructors do not have the same parameters as their type. The
canonical example is ==, which has 3 parameters, but whose constructor
refl only has two.
* Added single step meta-function to core
* Expose step/syn in redex-lang
* Added macro to sugar for convenience use
* Updated relevant docs (also fixed bug in reflection docs)
Moved all curnel code into curnel/, and split the two kernel modules
into separate files. Now the trusted core and the module/#lang stuff are
in separate files. The #lang is now reprovided by "cur.rkt", which
should also provide core agnostic sugar.