Pulled the cooldown mechanism from BigFileReader in a specific
DocumentReader abstract class, as mechanism was too specific to be in
API.