Additions to quiver.iterables

Here are a few additions I've added to the iterables library. Most of them should be generally useful and they're all benchmarked to be faster than the equivalent standard library implementation (where one exists).

A couple of things to note:
* I couldn't improve on sort, but Iterable.sort is missing from the iterable interface.so I kept the function in there with the reference implementation because it cuts down a few lines of code wherever it's useful (creating a list and then sorting).
* The benchmark harness can be removed if you don't want it in there, but I feel since quiver is aiming to be a low level library, a benchmark suite would be a useful addition. I've only added benchmarks for the code that I've modified, because performance was a key issue for most of it. There is no benchmark for `groupJoin`, since the implementation is bascially equivalent to `groupby`
* After benchmarking, I removed the ternary operator from the "current" property of the range iterator and the redundant `_onFirst` check. It only improves performance slightly, but because it's used as a replacement for `for` by people who prefer python style loop constructs...