Fully custom reads

Implements a new API to allow callers the ability to customize reading timeseries data.