Cleanup snapshot mr jobs

- Set BytesWritable capacity
- Do not recreate PrioritizedFactBytes
- Rename PrioritizedFactBytes to PriorityTag
- Change outputKey to BytesWritable mutating it for each key
Could we make it a bit clearer how to define new thrift structs. I think either there should be a single <package>.thift (i.e. ivory-core.thrift) in this case, or a .thrift per struct. My pref is a single one, but it is a bit weird having it be `Thrift.fact`.

Also the readme is a bit out of date, the command in it doesn't work, and there should also be reference to the fact that we need a specific version of the the thrift executable.