Allow users to not override default mailer configs

Fix from_address logic in mailers, it broke when there were noe
mail_method record on the database

Fixes #2929
adding spec and fixing user_logged_in promo rule

Fixes #2884
Wait for API request to complete in stock management spec
Fix remove_fields link from stepping on cocoon

Because the cocoon gem defines a similar callback on 'document', this callback will effectively override it.  
Modified selector scope to ignore cocoon links as a primitive workaround.

Fixes #2853
Fix issue when adding products without option values

Variants are not removed along with its options values and they
shouldn't because they might be associated with one or more values and
they hold other important infos

When admin deletes an option type all variants associated with that
record are not removed. However they were not displayed in admin
anymore due to a condition which did not allow to display variants with
no option values. Variants were still displayed on frontend though,
or their radio buttons at least

This patch aims to:

  * allow admin to associate variants with new option values and edit
    option values associated with a variant. I couldn't see any reason
    why admin can't to that
  * Make better use of both Spree and Rails FormHelper API
  * Hide variants that does not have any option values associated on
    frontend product page
  * Fix #2276. It adds a new method to Product to check if it contains
    variants with values associated. Denpending on that result the
    params sent to order#populate changes and nothing is actually sent
    populated