Make sure checkout payment only flow works

Fixes #3142
Add note about asset renaming (#4050) to Core changelog
Really fix shipment number generation

Fixes #4063

(really)

Conflicts:
	core/app/models/spree/shipment.rb
	core/spec/models/spree/shipment_spec.rb
Add delivery method for applying mail settings

This allows changes to mail settings to be applied without a server
restart.

Spree::Core::MailMethod reads mail settings from config at each delivery
and initializes a new instance of Mail::SMTP with those settings to
perform the actual delivery. It also skips delivery if
Config.enable_mail_delivery is false.

MailSettings.override! now just sets the delivery method to :smtp
Don't access :allow_ssl_in_* during initialization

Fixes #4094
make sure we search for a downcase coupon code, since that's what the order is sending.

Fixes #4081
Make sure that api requires authentication by default

Fixes #4096
Remove Spree::LegacyUser.anonymous! and anonymous?

These methods seem to have no more use within Spree.
Add EmailValidator#valid?

This method can be used outside the scope of an AR instance to validate if an email is indeed valid or not

Used within spree_auth_devise's CheckoutController decorator as of 29d167655314961e1043ae45694528b8f364c3fc