Restrict usernames to avoid collision with system users
Fixes #491 (closed). This will check new usernames to make sure they are not currently in use, or used by optional services.
One issue, when renaming a user, although the name change is rejected, the form is returned showing the rejected username at the top (and an invalid link for "change password").