Consolidate product validation

Currently there's validation in Products save() method which shouldn't live there. ProductForm's clean() method also seems to duplicate the same validation. It should be possible to move both into Product.clean()