Resolve name hints before adding to .ibc
Another small reduction in calls to TT.(==)
Shave a bit more off IBC size
Some IBC compression

Both internally (storing names as references to a symbol table) and
externally (using zlib). Not sure this has any real effect other than
saving disk space, but that's not a bad thing!
Fix memory leak

It turns out that having H.catch around too large a block means that
state is retained. In particular, having the catch around a recursive
application of the REPL means that all previous states get retained! So,
be careful to scope catch blocks around the smallest possible block.
Minor memory usage improvements

* Don't store internal definitions if we're not starting a REPL, since
  they won't be used for interactive editing
* Use a strict map instead
* Clear original pattern definitions since they are only used for
  termination/coverage checking