Add optional FileReader to FileAPIReader.

This allows a user to set an external FileReader instance, therefore providing the ability to reuse the same FileReader instance in serial reads for better memory management.