Add `toolz.sandbox.EqualityHashKey`

This builds upon the discussion and feedback from #166, which also has a faster (but harder to understand) implementation.

`EqualityHashKey` creates a hash key that uses equality comparisons between items, which may be used to create hash keys for otherwise unhashable types.  The trade-offs for using this are discussed in the docstring.  Additional usage cases would qualify as compelling reasons to promote `EqualityHashKey` out of the sandbox (imho).

@asmeurer, do you have any suggestions or additional cases where this would be applicable?