Implement "Change username" feature

Implements the "Change username" feature ([Trello Link](https://trello.com/c/9nwlCiXs/164-change-password-email-username)) in a panel on the settings page.

Some questions (Not all completely related):
1. ~~Should we have a "Current password" field as added security in the "Change username" form?~~ Added.
2. I've based this on the "Change password" code, which triggers a JS `alert` on success/error, is this a temporary placeholder?
3. A continuation of 2. Errors return a 404, but this shows on the client side as "Error (please reload): <error message> (Check developer console)" I take it this is also temporary?

Related habitrpg-shared changes: https://github.com/HabitRPG/habitrpg-shared/pull/226
@lefnire As an additional security layer. As this modifies your login credentials (Which change password also does, and that has an 'old password' field).