moved drain functions to util.clj
fixed equals and hashcode for Events to work by identity, replaced event-list code to use PriorityQueue