Added ability to edit username and email address

- Converted settings page to use a form layout to display username and email address, making both editable (and validated before submitting changes)
- Implemented logic to submit username / email changes to the server, and update the local storage and UI on success

This fixes #22. Also fixed a couple of bugs along the way:

- Fixed user info in header not being vertically centred on Firefox
- Fixed form validation always being one keystroke behind the user's input (the more generic `oninput` event is now used instead of the combination of `onkeypress`, `onblur`, etc.)