Dispatcher Frame Ranges

This allows dispatchers to dispatch a frame range, based on discussions from #878. It does the refactoring we discussed there, and adds the mode enum and custom range plugs we discussed. The issue shouldn't close when we merge this though. The remaining bit will be to get the various executionHashes working, so we can actually dispatch ranges of renders, instead of just my test nodes. I wanted to get this up for review in the time being.