Extract a few Priority-based helpers around MR jobs

Not sure how controversial these changes will be. It may be a little hard to see how I'm going to use these in rename until I create the PR later today. Let me know if you need to see it now.

/cc @etorreborre @markhibberd @raronson 
> This is a bit weird these flags now refer to the internal state of the PriorityTagDeserializer. Is there anyway we could move them closer together

See the b18f74adde7aa540f24dc1c99450e1877d516545 commit - I'm not sure if this is what you had in mind. Not sold on the `isValid` name, or the use of `null`, but it does ensure that the state is created each time correctly (I'm assuming the `: =>` call isn't too expensive?).