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
Why don't we ask for a String array, since we are going to do this cast anyway?