Make proxy_class fields NullCharFields to avoid uniqueness issues

Django has issues with using blank=True and unique=True together on a
CharField, which is why we've introduced the NullCharField. A more
detailed description can be found in it's docstring.

The same problems apply to the proxy_class fields on offer models.
Switching them to NullCharFields should resolve the problem.

Also altered one check for proxy_class to be consistent with the other
checks for an empty proxy class.