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 
Ok, can we add a small test somewhere that demonstrates the behaviour of optional fields - probably in core - just a "ThriftDerserializationBehaviourSpec" or something which can be used to clear up these types of questions.