Fixed a bug when trying to edit variant products.
Merge pull request #1217 from linovia/releases/0.6

Fixed a bug when trying to edit variant products.
remove odd </a>
apply missing linebreaks to shipping.notes
use get_model only once
remove redundant and even wrong comments
Added uppercase option to AutoSlugField.
Tests for separator and uppercase options.
Code of communication event type generated with uppercased letters and
underscore as separator.
Changed setup of functional test in dashboard/communication to be passed
with code populated from name.
Replace tax exemptions recipe with a more general US one

Fixes #1266
Import modules (not classes) where possible
Checkout index view enforces basket must be non-empty

This change introduces a new framework for enforcing checkout
pre-conditions. Each view class can define a class attribute
'pre_conditions' which lists method names to run before the class
itself.

Of course, decorators are more conventional for this kind of thing but
they are harder to override and customise.
Add tests for checkout shipping address view pre-conditions
Add tests for checkout shipping methods view pre-conditions
Extract core events into mixin to clean up tests
Add tests for checkout payment method view pre-conditions
Add tests for checkout payment details view pre-conditions
Remove get_error_response method

It is replaced by the new pre-condition checking.
Remove deprecated methods from checkout components

There were slated for removal in 0.6. The release notes contains info on
what replaces each method.
Rework get_context_data for checkout views

They now all use the same system as PaymentDetailsView where the
submission dict is built and used to form the data for the template.
This should be more consistent and simpler than the previous impl.
Extend PaymentDetailsView to make handling invalid payment forms easier

This change introduces a few new methods in the `PaymentDetailsView` so
less core code needs to be overridden if custom payment forms are
required.