Cleaned up some code.
Exposed some options for greater customization.
Simplified how splitting/reducing works.

Any collection can be processed sequentially by implementing the Splittable protocol. Also, the new implementation is slightly faster.