Loads of lovely performance improvements

It's now only about twice as slow as a normal Hash on lookup, and sometimes
even faster with memoized method instantiation (depending on the configuration
of the hash internally).