archive-commons: Lots of work on ZipNumCluster. Switching to SeekableLineReader from Stream as the abstraction layer.
The ZipNumStreamingLoader loads one block at a time, by using new SeekableLineReader.seekWithMaxRead() which allows
the subsequen readLine() calls to read up to a limit (using LimitInputStream for File IO, and a *bounded* http
range request for HTTP)
Also support for gzip wrapping -- this effective implements the functionality of ziplines block loaders w/o

SortedTextFile: Added ability to calculate arbitrary number of splits, given a start key and end key,
(ensuring starting as close to start key as possible by reading lines linearly as well)

Ability to get the N-th split as well as all splits, avoiding rounding errors by * first, then /