Fix NPE in CompositeRecordReader due to improper delegate initialization

The initial split created by the delegate in CompositeRecordReader should
provide the key/value objects used for the rest of processing. This was not
the case, which led to an NPE. Also, there was an issue in the getProgress
method.
can totalSplitLengths be 0?