Implicit product structure: Simplify product form

For the sake of a good UX, product structure handling will be hidden
away from the user. Instead, the following behaviour will be implemented:

* A newly created product defaults to being a standalone product.
* Child products can only be created from the variants section of an
  existing product. When that happens, the existing products becomes a
  parent product.
* When the last child product is deleted, the parent product is marked
  as a standalone product again.

Note that this implicit behaviour will be reserved to Oscar's dashboard
views, because it purely exists for a good UX. It will be easy to
override to ensure that more advanced scenarios are still possible.

This change simplifies the logic that is needed in ProductForm, which is
implemented in this commit. Product structure is kept as a hidden field
to ease ajax'fied dashboard editing.

Note that prior to this commit, ProductForm set the product class on
child products even though child products inherit their product class
from their parent. The old get_product_class method would also return
the wrong product class.
Implicit product structure: Handle creating and deleting

This is the easy bit. Product structure defaults to standalone product
when creating a product, and reverts to standalone product when the last
child product is deleted.
Beef up ProductCreateView to handle creating child products

A third way to use the view has been added: when called with a parent's
primary key, the view now handles the creation of child products. It
passes the parent into the context, so that both when creating and
editing child products, the template can hide most of the fields.