Refactoring use of TestUserAdminHelper

Making it harder to use incorrectly:

- takes a class and uses the simple name, along with dev's user name and random string, to create a unique user each time (that can be identified with its test if it is not cleaned up properly);

- createUser() methods return a TestUser, which is a handle that can be returned to deleteUser(testUser), regardless of whether a session is created or not, so user can be deleted each time.