Generic implementation to use various types as reader
A wrapper around Arc to allow using an arc as reader for Cursor<Arc>
A wrapper around IndexedBufReader which can be cloned very cheaply
IndexedBufReader