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]