Communication queues refactoring.

New threaded harness nows completely replace the old one, which has been
deleted. If you're using harness2 in your code, you'll need to replace
it with harness.
Communication queues are now more explicitly plugged, and "auto_create"
is removed from the QueueCollection class.
CommunicationChannelCollection is now called QueueCollection, for
consistence.
Converging, diverging and diamond shaped transformation graphs should be
allowed soon.
chain_add() is dead, glory to add_chain()

chain_add method was not flexible enough, and needed an instance
attribute to store a last transform state. Apart from linear
transformation chains, it could not help, and thus it has been replaced
by add_chain method that does not have the instance state change side
effect. It creates a linear (sub)graph of transforms, and eventually
plugs some given output to the first transform input, and the last
transform output to some given input.
Transformations can now use different outputs.

Safety check added when plugging transforms so we cannot anymore plug an
already used transformation (`virgin` property). Split transform wan now
be used to route rows between different outputs, depending on a callable
result. Base transform is fixed so non default output channel can be
used.