fix bug 753563 - Support username changes

Users now find an extra field on their profile edit page titled `Username`. Changing this
field allows them to change their username.
Existing usernames that do not comply with the new validation rules will not be affected.
fix bug 1087577 - show edit button on profile page for staff users

This also shows a warning on the edit profile page if the profile's user isn't the same as the editing user.
bug 753563 - move username regex and error message to central location.