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.
How this has turned out, I don't think it holds its own wait, the intention was to break away from MR, but this is just delegating all the issues at the moment. I think we should consider spending some time on it, or inlining it.