As a follow up to
PARQUET-1820, we should let an application be notified when pre-buffering has completed (e.g. PreBuffer() should return Future<void>). This would let an application pre-buffer some amount of data (across multiple files and/or row groups) and then decode data as it becomes available instead of blocking.
A more ergonomic API would be to expose Future<RecordBatchReader> or something along those lines.