Rhatch/user types

Pull request for new tests of user types.

These focus mostly on the DDL aspects of user types (adding, renaming, dropping) to make sure the DB can't get into a bad state as a result.