Changed KryoAwareSerializer to use Encoder and Decoder instead of Output and Input directly.
Renamed KryoAwareSerializer.
Removed ObjectConnection.addIncoming(Dispatch) as it was only used by tests.
Changed IncomingConnector so that the serializer is not required until the connection has been received.
- Changed OutgoingConnector.connect() so that the serialiser is not required until after the connection has been established.

- Changed MessagingClient and MessagingServer to return a builder for the ObjectConnection rather than the connection itself. The builder doesn't do anything yet.
Changed ObjectConnection creation so that ClassLoader is provided by the caller rather than injected into the various services.
Changed the contract of ObjectConnection so that connect() must be called finish establishing the connection, and all configuration must complete before connect() is called.
Changed MessageHubBackedObjectConnection to infer the ClassLoader to use for serialization from the incoming/outgoing interface types. Also added a method to allow a serializer to be provided for the incoming and outgoing method parameters.
No need to inject a ClassLoader into the WorkerProcess factory any more.
Use some custom serialization for shipping test events between the worker and main process.