Implement validators to enforce hyphen/underscores

In a DataSet, only allow underscores - not hyphens. This is because Mongo
is fussy about collections with hyphens in the name.

In a DataGroup and DataType, only allow hyphens, not underscores. This is
because they become slugs in a URL, ie
.../data/some-service/monitoring

Only allow lowercase throughout.