Add new option 'register and continue' to checkout process
Update gateway template

The assumption is that most customers will not have an account (unlike
Amazon, eBay etc.), hence the default is to create an account.
The wording has been changed to hopefully be more approachable.
Standardise email address handling

All code handling email addresses has been update to use a new function
normalise_email, to have one consistent way of handling email addresses.

This function lowercases the domain part of an email address if it can
find an @, so it works on partial addresses as well.
Prevent checkout as guest/new user if email address exists

Before, it was possible to enter an existing email address and continue
the checkout process as a guest, which is a bug. It was also possible to
select to create a new user, but the then-displayed form would disallow
creating a new user with that email address.
Rework gateway template and form

- Use form labels in template
- Write email errors next to form field
Tidy registration template
Add cancel URL to registration form
Rework customer registration view

- Use a FormView (as it is a form view)
- Move the redirect URL validation into the form
Rework login/registration view

- No longer subclasses the auth view
- Uses a mixin for shared view functionality
Remove '\r' from email message subjects
Test new line is removed from the message subject