Improve the errors on the registration page

- Use the crispy_forms app to make the form templates more flexible
- Create a custom registration backend to override the registration form (which seems like overkill to just change an error message)