Corrected and improved `merge_sorted` function.

The same approach as before is used, but the following improvements were made:
(1) Don't use Queue module!  Queue is meant for threaded applications, and the
    performance sucks because queue methods need to lock and unlock mutexes.
(2) Use heapq module instead of Queue module.
(3) If no key is specified, then use `heapq.merge` for improved efficiency.
(4) Corrected priority of item comparison so values from earlier iterables will
    come before later iterables.  The order of comparison was changed from
    [key(item), item, itnum] to [key(item), itnum], where `itnum` is the index
    of the iterable.  Note that we don't need to--and shouldn't!--use `item`.
    To clarify, the problem with the original implementation is `item` comes
    before `itnum`.
(5) Added more tests for my sanity!
`merge_sorted`: improved documentation, comments, and tests

The new tests check that sorts are stable such that when multiple items have
the same key, their original order is preserved.  An alternative implementation
of `merge_sorted` with a key as discussed in #58 is shown as a comment in the
code, because it may be more understandable to some developers.
`merge_sorted`: oops, use floor division in tests for python 3 support
`merge_sorted`: oops, forgot the doctest.  Thanks Travis CI!
Merge pull request #58 from eriknw/better_merge_sort

Corrected and improved `merge_sorted` function.
merge and merge_with accept single iterator arg
merge_with functions on lazy iterator

Currently it to fully expands the iterator into a list.
This could be improved in the future
more efficient merge_with
allow merge_with to be lazy(ish) again
add rolling_partition
improved implementation of rolling_partition.

This is about 20% faster than the old version by the benchmark in
bench/test_rolling_partition.py

Also added imports

Implementation by @eriknw
%s/rolling_partition/sliding_window/g
rename sliding_window benchmark
Merge pull request #61 from mrocklin/merge-iter-arg

merge and merge_with accept single iterator arg
Merge pull request #44 from mrocklin/rolling_partition

add rolling_partition
Merge branch 'master' into memoize-curry-inspect