Add a new kind of index that can slice data by multiple dimensions, e.g. by timeline id.  Move the binary search part of the old date index into a reusable date list class that keeps a list of events in sorted order by date.