Preparing a compatibility layer for ECF

- Added definition of the OSGi EndpointDescription bean
- Now JSON-RPC uses service properties for its configuration
  (removed the URL field from Export/ImportEndpoints)
- Added ExportDescription -> EndpointDescription -> ImportDescription
conversion methods
ImportRegistry checks if the added endpoint is from its framework
JSON-RPC sets the framework UID to its ExportEndpoint beans
Changing the way the import/export mechanism works

The dispatcher tells the export provides to make endpoints, instead of
providers creating endpoints and notifying the dispatcher.
Added an __hash__ method to the ExportEndpoint class

Allows ExportEndpoint objects to be stored in sets.
This method returns the hash of the endpoint UID string.
Correction of small code errors

- Dispatcher.__service_uids only contains UID (instead of ExportEndpoint
objects) as values
- Correction signature of @BindField methods (missing field paramter)
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
Corrected Dispatcher.get_endpoints() for the discovery process

The method returned an empty list.
Late endpoint listeners are notified by the import registry

Allows to import pre-discovered services
Corrected the JSON-RPC dispatch method

Bad selection of the service to use
Merge branch 'dev' into ecf_compat
Merge branch 'dev' into ecf_compat
EventAdmin uses to_iterable

Allows handlers to give a single topic instead of a list in their
properties
Events are sent over MQTT only if a flag is set

If the 'event.propagate' property is present, the MQTT bridge will publish them.
Else, events will stay local.

Corrected the event source UID property value.