Update the multicast discovery for the new API

- endpoint_added replaced by endpoints_added
- 'uid' field replaced by 'uids' in 'add' event packets.
ExportEndpoint.__str__ uses stored members values

Avoids to call __compute_specifications again
Ensure the listeners are called (only) when necessary
Handle exception when creating an ExportEndpoint

The ExportEndpoint constructor raises a ValueError if the service
does not export any specification (after filtering)
Corrected exception string format