Introduce SnapshotWritable for sorting by time/priority and remove PriorityTag

Part 3...

This, or something like it, makes it possible to do snapshot windowing. I hope this is the right idea, although I'm assuming there was probably a very good reason we didn't do the sorting previously.
I'm assuming we probably need a new partitioner too that works off the group?