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 
Just an observation, but it is might worth core having a package level type alias for `type MutableFact = NamespacedThriftFact with NamespacedThriftFactDerived`