Allow custom enable submit logic

Allow for customization of when the add to cart button is enabled.
So for example if other conditions need to be met before a product
can be added to cart.

Added enable_submit function param to VariantOptions to check other
product state to determine if the submit button should be enabled

Added VariantOptions#selected_variant to determine if variant is
selected so you can determine if add to cart button should be
enabled when the other conditions are met