Adjust check for 'move_to_basket' to avoid KeyError
Stopped using null=True on CharFields

null=True is only useful for a few edge cases where one wants to
separate between '' and None.  If null=True was found, it was removed.
If blank=True was not set already, it was set instead.  If default=None
was set, it was removed (defaulting to '').

I then grepped the source code for tests 'is None' and 'is not None',
and checked the instances where default=None was set.

Fixes #584