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 
Yes, we can't use option here. 

But besides that, It can't actually be null because you have a non-empty iterator and the two state checks that assume back this up. But it is not clear from the code as it is. Kind of related to my other comment.