DRILL-934: Partial Implementation of repeated reader. Includes a fairly substantial refactoring of the overall reader structure.