New sketch of reading data

This reads files a chunk at a time, which may be more memory efficient than reading the whole thing and breaking it up. It also reads headers.