Change confirm step label to uniform it with other steps

Fixes #4075
Add ability to set page title for admin pages using a content_for :page_title
Leave comment as to why we need to do next_transition.run_callbacks in OrdersController
Only require email when past cart or address

This means that an email field can now be provided on either the cart or address forms

More importantly, the 'state' field will now say 'address' when users reach that state, rather than 'cart'

Fixes #4079
[api] Remove test checking for email validation failure after cart

No longer required since 177fecf32cce98b78b56d6bef8d01ab137ea0726
Switch state for email validation test to address, so that its triggered on transition to delivery

Necessary after 177fecf32cce98b78b56d6bef8d01ab137ea0726
Call shared/_head title content_for 'title', becuase 'page_title' is already taken
Ensure that state_changes aren't created when the state doesn't change

In retrospect, this seems very obvious.

Fixes #4072
Move shipments JS out of variants_autocomplete.js and into shipments.js
only payment state change is logged now
Fix for Spree::Money's default currency when currency can't be detected, add test

Fixes #4077
Do not use ship address in UserAddress if it is not present on the order
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
Remove AS on_load block on core engine

It was not working as expected anyway we'd need to execute that hook
later in the application and I have no idea where we would do that,
tried a bunch of places and none had the result expected
Check attribute existence right before delegating

This prevent Spree from touching the database on startup time and that
helps with assets precompile
Merge branch '2-1-stable' into no-db-connect-on-environment-load