Add `toolz.sandbox.EqualityHashKey` as discussed in #166

`EqualityHashKey` creates a hash key that uses equality comparisons
between items, which may be used to create hash keys for otherwise
unhashable types.  The tradeoffs for using this is discussed in the
docstring.  Additional usage cases would qualify as compelling reasons
to promote `EqualityHashKey` out of the sandbox (imho).
oops python3
Fix typo
Refinements to `EqualityHashKey` including requiring a `key` argument.

The canonical purpose of `key` is to calculate a partial key hash that is
good enough.  This is *much* better than using the default hash value.

`'__default__hashkey__'` is used as the default hash value, not a random number.

Many implementation questions and discussion were added as comments to
facilitate development.
Document key argument and remove comment questions
Merge branch 'master' into equality_hash_key

Merging so `toolz.itertoolz.getter` can be used.
EqualityHashKey can accept an index or indices for the key
Merge pull request #173 from eriknw/equality_hash_key

Add `toolz.sandbox.EqualityHashKey`