Adding back the read end field.

The read end field is a lot less expensive to store than it is to compute on the fly, and having the read end around is useful for predicate pushdown (e.g., does a read overlap a region?)