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.
add streaming analytics doc page
edits to streaming-analytics doc page
edits to streaming analytics doc page

Suggested by (and often copied verbatim from) @eigenhombre
add semicolons to SQL commands
correct join input order
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`
Make callable created by juxt serializable by making juxt a class
Merge pull request #197 from eriknw/serialize_juxt

Make callable created by juxt serializable by making juxt a class
Backport a couple regression tests from `cytoolz`.

Also, add a test that ensures `curry` doesn't return a `partial`
object if a single argument remains and keyword arguments are present.
This behavior was added in #170.
Add serialization test for `complement`
Remove print statements in tests
Test groupby with lists of indices
Merge pull request #198 from eriknw/backport_tests

Backport a couple regression tests from `cytoolz`.