customize FormSet class after calling inlineformset_factory

That way there's no need to know what base class inlineformset_factory
uses and it's consistent with StockRecordFormSet.
Unify __init__ method signature of formset classes

so that we can treat them all the same in ProductCreateUpdateView. Also
add user argument as that will be needed for
https://github.com/tangentlabs/django-oscar/pull/1002
Make it trivially easy to add more formsets to the product update page
Provide a hook for cross-form validation