Create a data set if it doesn't exist when writing

This decouples creation of a data set in stagecraft from creation in
backdrop, which has been the cause of a lot of the bugs around creating
data sets.

Once this is done stagecraft can be updated to remove it's dependency on
backdrop. Once that is done the create and delete end points here can be
removed.

One point to note is that collections will not be removed when the data
set is deleted in stagecraft. The data set will not be available
(queryable or writable), however, if a data set with the same group and
type is created the previous data will still be there. Although it can
be emptied.