Make a new ID generator for descriptions that uses language code and
an (optional) identifier to generate stable IDs.

- Additional refactoring of ID generation
- Modifications to description CRUD to set scope properly
- Added a script to migrate existing graphs
Optimise imports and use more appropriate generic cls for description crud.
Refactor IdGenerator API for less redundancy.
Rename tests so they're picked up by JUnit