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
Introduce loud get_model loader

Django's get_model returns None if the import fails, which causes subtle
bugs further down the line. This change introduces a wrapper around it
which raises an ImportError instead, hence catching the error as early
as possible.
Switch to Oscar's get_model function

This should always be used instead of Django's silent version.
Fix ImportError highlighted by switch to loud get_model loader

forms.py was using the wrong import statement to load the User model.
Update fixtures to reflect removal of is_canonical

is_canonical has been removed recently; this commit updates the JSON
fixtures to make the sandbox accordingly.
Fix example code in Getting Started docs
Mark more strings translatable

Fixes #1171
[Backport] Mark more strings translatable

Fixes #1171

(cherry picked from commit 0a72bf27c93322a10afbda602e87935438272552)
Correct handling of offer creation without a range

The workaround for JSON serialisation introduced a bug that was
triggered when the offer contained no range, which is allowed for
certain offer types. In that case range is None, and accessing range.id
threw an error.

Fixes #1167. Thanks to @izidormatusov for reporting.
[Backport] Correct handling of offer creation without a range

The workaround for JSON serialisation introduced a bug that was
triggered when the offer contained no range, which is allowed for
certain offer types. In that case range is None, and accessing range.id
threw an error.

Fixes #1167. Thanks to @izidormatusov for reporting.

(cherry picked from commit 1e85821d85068c71d7d5b959fce743f1b7bfe248)
Fix issue with custom user model in order migration
Remove hard-coded user model in recent migrations

This ensures a custom User model can be used with migrations.