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.
hmm, I suppose it could be if the underlying splits for whatever reason don't have a length? shouldn't be possible for a filesplit but no point not to guard against it.