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
Quick Q (sorry for so late!) why do we have them enter password? Just for auth double-check kinda thing? Methinks the [auth.auth](https://github.com/HabitRPG/habitrpg/pull/3597/files#diff-bf027ff3d600e5bfe8caddb7b95ff310R13) middleware should suffice