[#68811824] Add delete back into the admin UI

- Doesn't remove data-set from backdrop
- Admin UI automatically gives safety warning
Add in test for deleting data-sets

- Remove old test that asserted that we can't delete data-sets
- Mocked as per all the others tests
Remove DeleteNotImplementedError on delete method

- Also add in `purge`
Rename CREATE_COLLECTION_ENDPOINT_TOKEN

- Use STAGECRAFT_COLLECTION_ENDPOINT_TOKEN instead, as we want to use it for deleting collections as well
Test that caches are purged on delete
Remove unused DeleteNotImplementedError exception
Removing unnecessary test
Renaming functions for creating/deleting data-sets
Updating some of the DataSet model's docstrings
Test delete_data_set() from backdrop_client is called
Fix and refactor delete_data_set()
Call create_data_set() and the super method when deleting from the ORM
Merge pull request #119 from alphagov/delete_datasets

Delete datasets
Add in test for creation/deletion

- Checking that they appear and then disappear from a list is useful
- Ensures we're calling `super`, i.e. not just hitting backdrop, but also deleting from stagecraft
Merge pull request #121 from alphagov/test-actual-deletion-m8

Add in test for creation/deletion
Make tests work on PostgreSQL

https://www.pivotaltracker.com/story/show/67995534

The problem was related to how we created a temporary DataType and
DataGroup at the start of a test class, then shared it between tests.
This coupling between tests meant that one test could break another one.
It went unnoticed in SQLite because it doesn't enforce certain foreign
key constraints.

I've refactored the code so that the `_make_temp_data_group_and_type`
creates a data type/group with a long random name, and no longer deletes
it afterwards (because this was hitting database PROTECT integrity
errors).

Now instead of sharing a data type/group between tests in a test class,
each test just asks for a new pair and will always get a unique pair. This
decouples the tests from each other and makes it work in PostgreSQL.

[Fixes #67995534]
Use ascii_lowercase not lowercase for Python 3
Remove obsolete try, finally clause