Fix boundary conditions in kronos

This also adds an `end_id` parameter which is analogous to `start_id`. 
should this be gte? Or do we assume no events will have UUIDType.LOWEST?