Add Validation to Forgot Username

Added a ```required``` HTML5 attribute to prevent submitting an empty username
and we throw an appropriate error if a blank username is sent to the
server. Fixes #1374!
@steventlamb I agree that using our full AJAX-based validation stack is overkill here. This seems like a prime candidate for the [messages framework](https://docs.djangoproject.com/en/1.6/ref/contrib/messages/). Instead of returning a 400, we set an error message:

```python
messages.add_message(request, messages.ERROR, trans('Email field is required'))
```
Then render the same ``forgot_username`` template, which we modify to show any error messages in the context.

This may be tricky given the way we are explicitly using the "done" template when routing POST requests

```python
forgot_username_view = route(
    GET=render_template('treemap/forgot_username.html')(),
    POST=do(
        render_template('treemap/forgot_username_done.html'),
        forgot_username))