Creates a new user in the user store. More information about the user
can then be added using the returned user object. Will throw an exception
if a user with that name already exists, or if the user cannot be created
for any other reason.
Saves a user which originates from this database. Note that you
cannot give just any user object, the parameter must be a user object
you originally got from this user store. Use getUser to get an existing
user or newUser to create a new one.