Implement part of the changes agreed upon in review #42

* Backend component library no longer handles id assignment.
  The front-end now is in charge of creating a unique id to
  be used in the backend. This simplifies creation and
  re-creation of elements. For now the front-end uses 64bit
  random numbers. For the element counts we expect this
  should be sufficiently collision resistant.
* Added enumerate_components action to interface for enumerating
  available component types in the backend.
* Added corresponding enumerate_components handler on item_registry.
  The registry now emits a enumerate_components signal once
  receiving a reply from the backend.
* Documented item_registry classes.