Fix boundary conditions in kronos

This also adds an `end_id` parameter which is analogous to `start_id`. 
my feeling is that order should not change the events returned, just their order.  so in that case it would still be [start, end)