Fixes#85
As well as adding deep-clone (via the new dependency on the 'clone' module), we no longer clone the message if there is a single recipient. This makes simple node-to-node flows more efficient.
I've done some simple profiling using process.hrtime to time how long the Node.send function takes, and at best, this change is neutral to performance.
The code scans the flows that are to be started and checks all
of the necessary node types are registered; if not, it doesn't
start the flows.
An event is emitted when each node type is registered - allowing
the server to track when all of the 'missing' node types register
and then start the flows.
This is a step towards adding node-types without restarting.