serf: split coalesce and make use of interface
serf: UserEvent exposes the lamport time
serf: supporting user event coalescing