3961: reset object UUID when ensure_unique_name is set

When saving an object that has to be renamed with ensure_unique_name,
force @object.uuid to nil so that validate_uuid will not be confused
into thinking we are trying to reassign the uuid.
3961: test creating subprojects under home with duplicate names

New tests:
* unprivileged user creating a subproject under their home project, with
  an existing name, returns 422
* unprivileged user creating a subproject under their home project, with
  an existing name, and ensure_unique_name=true, succeeds
3961: more explicit assertions and error text
Merge branch '3961-uuid-assignment-not-permitted'

Closes #3961.