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
mail admin shouldn't re-init mail settings

This caused mail settings to be reloaded ONLY in the process accessing
the admin. This could cause users to believe mail settings were
correctly set when they were really not (for all running processes).

Also makes the update action a proper Post/Redirect/Get.