Specify class_name for OptionValue's option_type association

If you attempted to assign any non Spree::OptionType object to this association, it would result in a vague uninitialized constant error
Showing line items on orders screen now when there are no shipments

Fixes #3958
no longer require spree_admin at a relative path

This allows for this file to be completely overriden if people so desire

Fixes #3415
fix for report locale names when extending via class_eval

* source issue: https://github.com/spree/spree/issues/4086
* try to maintain the reports not in a constant
* make it easier to add new reports over current merging arrays way
* clean up to avoid test breakage in the ui tests due to missing routes
* added a test on GET :index to check for regressions for my change

Fixes #4086
Fixes #4087
Make sure checkout payment only flow works

Fixes #3142

Conflicts:
	frontend/app/views/spree/checkout/payment/_gateway.html.erb
Really fix shipment number generation

Fixes #4063

(really)
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

Fixes #4093
Don't access :allow_ssl_in_* during initialization

Fixes #4094
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
make sure we load the promotion rules after initialize so the user rules are correctly saved. also remove the after_save on promotion, this is no longer needed.
[api] Passing without_children=1 to taxons endpoint will now return a 'shallow' result set without children

Fixes #4112
Only show orders/mine for persisted users
[backend] remove reference to removed anonymous? method in customer_details/form
make sure we use the proper check for checkout steps to render the shipment state

Fixes #4107
Fix issue where checkout failing on confirm step would redirect back to address step

Fixes #4117
Add migration to ensure shipping method categories are unique

Related to #4102
Remove duplicate join record creation

Related to #4102
Refactor shipping method creation to use a single method call

Related to #4102