Promote UUID to all CatalogueElement objects & add UUID API and UI endpoints

This PR adds a UUID endpoint to the UI, e.g.:

`#/catalogue/model/uuid/MC_00a2ef83-e057-4958-ab3e-b4e4995ecc43_1`

It also adds an endpoint to the API which allows CatalogueElements to be queried by UUID, e.g.:

`/core/model/uuid/MC_00a2ef83-e057-4958-ab3e-b4e4995ecc43_1`

The above gets applied to all CatalogueElements, so `model` above can be replaced for any other API-accessible class...

To achieve this UUID has been extracted to from PublishedElement and promoted to CatalogueElement (because all controllers, etc. use this as the abstract base). See the commit messages for more info.

Fixes MC-287.