When adding to the basket, products with options were treated as
different products for each combination of options. This allowed adding
more products into the basket than are available for purchase.
The handling has been updated to sum up the already added quantity of
the product regardless of options.
Fixes #665
Rework the clean() method of the add-to-basket form
This fixes a bug with adding customised products to the basket, where
the clean method would get a MultipleObjectsReturned exception as the
lookup wasn't taking options into account.
Also fixed a display issue with required options in basket forms.