Fix dependency injection issues

- allow for a clear separation of the bootstrap layer (i.e. process + connectivity to
cluster manager) from platform configuration (comm and core bindings) and application code

- unfortunately there is no communication between nodes now.
Main issue relates to partitioning based on streams: the Emitter implementations need
to have the information about where to send messages. It used to be a simple mapping
partitionID -> node, but by adding streams it get more complex. One option would be to
have 1 emitter per stream. Another is to resolve mappings in the sender.
These solutions imply many changes, so I wonder whether we could first have a version
without variable partitions per streams?