Easily add new formset to product update page

In our oscar installation we want to add two other formsets to the product update page. These changes make that possible without duplicating any code.

The semantics of the changed code is the same except for three things: 1) request.FILES is passed to all formsets, not just the ones that have a FileField in their form. 2) All formsets get passed the product class, although only the StockRecordForm uses it right now. 3) All formsets get passed the user although no formset uses it right now. However that might be a common requirement for a new formset in a custom oscar installation. Also https://github.com/tangentlabs/django-oscar/pull/1002 needs the user.

If someone has a good idea how to do what I want without unifying the __init__ signature of all formsets, I'm all ears :)