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.
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
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 #821 from tangentlabs/issue/584/charfieldswithnull

Remove null=True from more CharFields and related