Pass validation and improve workflow

Variant products can now be created from a suitable future parent
product. A helpful message is displayed if the future parent is not
suitable.
Two new paths have been added to handle adding a variant from a suitable
parent, and for adding another variant after saving one.

Some more tweaking was required to pass the tight product validation.
Wrap is_discountable for child products

At the moment, we don't support setting is_discountable for child
products individually. This does keep things simpler when editing
products. If a use case crops up, it should be reasonably easy to
change.
Revert to rendering all fields of product form

This saves one step when customising the product model. Instead, we
dynamically delete the fields not needed for child products -- that's
the cleaner approach anyway.
Update tests for updated child product editing

Nothing major to see here. Improved the slightly horrid
TestCreateProductForm test class.