UPC field should be CharNullField

The UPC field of the product model is a unqiue, nullable ``CharField``.  It has to be nullable for uniqueness to hold when some products don't have UPCs.  However, this causes an issue for forms which return an empty string for such fields by default - see https://code.djangoproject.com/ticket/9590

Oscar's product dashboard form handles this explicitly but I think we should modify the model field to handle this rather than relying on forms.

I've been bitten by this one recently where we weren't using the product dashboard.