Fix bug when parent field is excluded from ProductForm

A check in ProductForm's __init__ caused an error when the parent field
is not present. It is reasonable to believe that this field would be
omitted for deployments that sell only canonical products. Hence, the
existence of the field is checked before altering it.
Fix documentation for running tests

When you use the notation with slashes, use full path to file.
With dots, enter module name. Commands run with the current test set.
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
Making strings translatable

I used the existing script [1] that cooperates very nicely with vim.
1: https://github.com/rory/django-template-i18n-lint

Fixes #676
Fix bug in order dashboard CSV download
Convert order dashboar redirect test to use WebTest
Fix URL resolution issue for customer alerts
Rework user dashboard detail template
Checkout template adjustments

- Expand width of address block
- Wrap edit user address form in "well"
- Add extra blocks to preview template, splitting out shipping address,
  contact number, notes and method.
Patch missing i18n lib in gateway template