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.
Note that there isn't a reason that `featureId` wouldn't be rolled into `entity` bytes as well under normal circumstances, but in the next PR I switch to an int to help with window lookups.