Have Admin deal with readonly_after_create fields separately to the model

- We keep the clean() method on the model, so people can't do things we don't expect like changing a data_set name after it's created
- We keep the pattern of data_group/type being uneditable after creating a data_set in the admin
- This is achieved by having readonly field patterns in both admin and on the model. This has the advantage of separating admin UI behaviours from ORM ones, but possibly causes some maintainabilty overhead
Add test to ensure data_set.name is created in the way we expect
Remove all explicit name references, just use group and type to infer data_set.name