Rename base for ProductCategoryFormSet

Currently, the base class that is used to construct the
ProductCategoryFormSet and the ProductCategoryFormSet (as returned by
inlineformset_factory) share the same name. This makes overriding
harder and is against the Django docs.
As the base FormSet is never used in Oscar apart from using it in the
factory, I've renamed it to BaseProductCategoryFormSet, keeping it in
line with Django docs.
Replace pinocchio with spec

It's a more up-to-date version of the same thing.
Add recipe on how to integrate a payment partner