CLient and Server implementation of client multicast discovery

Refactored Server side to reuse MulticastService used by nodes to send
JoinRequests.

Add a DiscoveryMulticastListener to service to enable have et respond to
DiscoveryMessages.

Client implements an AddressProvider for multicast which in turn uses
the ClientMulticastService for sending and receiving the
DiscoveryMessage.

So far only a single discovery respnse is required - the rest is
ignored. Don't know yet if this should be implemented differently.