Allow nodes types to initialise asynchronously at start

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.