Fix boundary conditions in kronos

This also adds an `end_id` parameter which is analogous to `start_id`. 
re: @usmanm's response: are you doing a union of the three results, or an intersection?