Broke out property encoding into separate step
Parallelized property encoding in batch importer

by defering creation of property records until time of writing.
PropertyEncoderStep can have multiple threads encoding properties into
PropertyBlocks, attaching them to each entity.
Moving average for batch importer stats
Dynamically (re)assign processors to slowest importer steps

to optimize steps that are seen to be bottle necks. For this the ability
to have multiple stage execution monitors with individual poll interval,
and a custom task executor with dynamically changable thread count have
been added. Both ExecutorServiceStep and IoQueue uses TaskExecutor.

There's an execution monitor that constantly whatches where processors are
assigned and (re)assigns more or less to those where it sees fit.
Parallelizes id mapper lookups due to bottleneck issues

does so by introducing a RelationshipPreparation step in between the
producer and consumer of InputRelationships, a step that does the idMapper
lookup and attaches the looked up ids to the batches passing through. This
step is parallelizable and will have as many processors assigned as the
dynamic processor assigner sees fit.
Small fixes to input
Merge pull request #3525 from tinwelint/2.2-bip-parallel-prop-enc

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