Remove null=True on CharFields and others

Reviewed CharFields, EmailFields, TextFields, etc.

Some fields were left unaltered:
* proxy_class rely on unique=True, and that only works sensibly with
  null=True
* The same is true for Product's UPC
* Because order's Line model UPC field usually gets fed the Product's
  UPC, it's least intrusive to still allow null=True there
Subtle changes to handle '' instead of None

Tests failed on a few occasions, because CharFields were set to None or
expected to be None.
Add start and end times to vouchers
Make test_datetime timezone aware
Merge branch 'master' into issue/1068/voucher_improvements

Conflicts:
	oscar/apps/voucher/abstract_models.py
Add shipping offers as voucher options
Strip whitespace from start/end of search term

Remove whitespace from beginning and end of search term (UPC and Title)
in dashboard
Allow test cases to consider a custom Oscar user model

Most test cases only consider the default Django user model that
contains the username field. As soon as you extend Oscar's AbstractUser
model that doesn't contain a username field, tests that use
ClientTestCase or WebTestCase fail.
Remove several code paths exclusive to Django 1.4
 Make product classes manageable within the dashboard closes #1094
Disallow deletion of product classes with products. ‘Class’ changed to ‘Type’ in UI.
Fix whitespace and line length
Add blocks to product update page for better customizability
Merge pull request #1189 from mbertheau/dashboard-product-template-blocks

Add blocks to product update page for better customizability
Docs: Remove outdated how-to on multi-dealer setup

This functionality is part of core Oscar now; the permission-based
dashboard should be used instead.
Add Django JS view to demo urls.py
Drop legacy image importer for demo site

No reason to keep that, we can just use Oscar's version. Packaged the
images in an archive to achieve that.
Explicit debug toolbar setup for demo site

Got bitten by a circular import when trying to do 'make demo'; this
fixes it.
Add circular import warning to get_classes

Before the fix in e97ec27c958e56055e7383a3ed6a38a49a244512, the new
get_classes threw an AppNotFoundError whereas get_classes prior to the
refactor did not.

The condition is that neither the local module nor the Oscar module
could be imported. Our reasoning is that this is an issue with circular
imports. Before the refactor of get_classes, not being able to import
the Oscar in the shortcut path (beginning of function) would raise an
ImportError; which is then masked by a wrapping get_classes call. Hence,
the circular import is hidden.

This fix highlights the condition explicitly by raising an error that is
intentionally not an ImportError.
Rename poorly named partner.exceptions.ImportError

Naming it like a built-in exception makes it hard to distinguish between
the two and is error prone.