Add tuples and equality exceptions to the semantics
The metatheory works again
Fix the translator.

The Okasaki examples don't all build though.
Get the implementation compiling
Try to get the compiler proof working with cheats

No success.  Theorem statements need to change to accomodate the new
type of Con, Conv, and Pcon, and it isn't obvious to me what's the best
way.
Get the compiler selftests to pass
Progress on compiler proofs.
Add the Eq_error exception to the compiler
Builds up to compilerScript, but with cheats
Remove cheats.

This gets all but the equality applied to a closure case of
toIntLangProofs.
Fix Cevaluate for equality on closure values
Remove the last cheats
Merge branch 'master' into tup+eq
More printer testing
New semantics of equality
Fix broken dependencies
Merge remote-tracking branch 'origin/master' into tup+eq
Missing eq_list case
Make do_eq raise type errors
Add closure-checking equality to bytecode, and update compiler

The intermediate language targets the new bytecode instruction directly,
so we also introduce a new primitive instruction to test whether a
bytecode value is a block or not (so we can tell whether the result of
the equality test was a boolean result or an error indicator).

As yet untested, since metatheory and/or translator are broken.
This commit will also break the compiler proofs.