Refactor CompositeRecordReader to only make a record reader when necessary

Following Raghu's comments on this PR https://github.com/kevinweil/elephant-bird/pull/398 this defers opening record readers until necesary
Key and value are set in setKeyValue. We have to do it this way to be consistent with the compat layer of MapredInputFormatCompatible