Dynamic (re)assignment of processors to slow steps during import

- Made property encoding parallelizable in the batch importer
- Allows for multiple execution monitors
- The "average" stat is now a moving average which responds more quickly to changes
- Added a processor execution monitor that dynamically, throughout the import, (re)assigns processors to steps as it sees fit
Have you considered using a BlockingQueue of sorts? These interactions look complicated, as the read/writeCursors, the size and the queue are all coordinating state changes.