I'm worried about the following scenario:

* We write some code that takes a map and uses a method that's not defined here.
* That code is never passed a NormalizedMap in our tests, but could theoretically be passed one.
* A user stumbles onto a code path that passes a NormalizedMap to that code and they get horribly broken.

It's a little cumbersome, but I think we should explicitly forward *all* the public methods on `Hash`, and add a test that checks the public instance methods of `NormalizedMap` against those of `Hash` so that when more are added we remember to add them as well.