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.
Remove several code paths exclusive to Django 1.4
Document why AUTH_PROFILE_MODULE is still supported
Adjust basket line to retrieve strategy from basket instance

We don't need to assign the strategy onto the line directly now that we
don't support Django 1.4.
Define __repr__ for the core Price class
Merge branch 'master' into issue/584/charfieldswithnull

Conflicts:
	oscar/apps/address/abstract_models.py
	oscar/apps/catalogue/abstract_models.py
	oscar/apps/customer/abstract_models.py
	oscar/apps/order/abstract_models.py
	oscar/apps/partner/abstract_models.py
Put reviews apps models under South migration control

This was missed so far. Oops, sorry about that!
Any existing deployment will have to run

$ ./manage.py migrate reviews 0001 --fake
Merge branch 'master' into issue/584/charfieldswithnull
Data and schema migrations for removing null=True on CharFields

The data migrations convert any field values that are None to ''.

After second thought, the field changes on ProductAttributeValues have
been undone again. It seems more consistent with the other fields.
Merge pull request #1249 from wujiang/master

fixed code block indentation on docs
Unnecessary underscore before link to guidelines
Use caching template loader for tests

Saves a second/10% of test run time on my machine.

No measurable effect had:
* persistent database connections
* the cache session backend
* removing context processors

WebTests seems to come in around 100-300 ms each. That seems high given
that database queries should be quicker than on a production webserver.
Merge pull request #821 from tangentlabs/issue/584/charfieldswithnull

Remove null=True from more CharFields and related
Merge pull request #1250 from vovanbo/patch-1

Unnecessary underscore before link to guidelines
Merge branch 'master' into fix/django14

Conflicts:
	docs/source/releases/v0.7.rst
	oscar/apps/basket/abstract_models.py
	oscar/apps/customer/abstract_models.py
	oscar/core/compat.py
	sites/demo/settings.py
Update Oscar's get_user_model to remove support for Django 1.4

Also drop an overly optimistic comment about multi-column indexes; afaik
they still haven't landed in Django.
Merge branch 'fix/django14'
Reduce querycount on order dashboard.

Should reduce queries from over 100 to ~6.

Moved from OrderListView into queryset_orders_for_user by @maikhoepfel.

Fixes #1254
Undo CharField changes to CommunicationEventType

The sending of emails relies on a (too) subtle distinction between empty
strings and None; either it won't get send, or Oscar will look for a
template file.

This behaviour should be improved as part of #319, #594. Till then we
just revert to what it was like before I merged #821.