Implement slice!, fix fetch, misc cleanup, and new unit tests.

Hey,
  Since it looks like we are going to continue using TaintedHash, I thought I would go through an cleanup a few other things I had noticed.  This PR has:

* Implementation for `slice!`.
* Implementation of `fetch` that more closely aligns with `Hash`.
* Cleanup of a few other methods.
* Add units tests for prior incorrect behavior.