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
Remove object_params in favor of a callback system

object_params is one of the uglier areas of the code that is also
frequently in need of expanding upon (who remembers the promo
controller implementation?).

rather than continually expanding and class_evaling over top of
object_params, I have switched it to a callback based system that
extensions can subscribe to and do whatever action is required. While
all this changes is core is deprecates object_params for a single
callback, in our "live" site, this fixes the integration of 3 separate
extensions that deal with different payment types.

The ugliest part to this commit by far is the @updating_params instance
variable as a place to change the parameters, but I am very open to
suggestions or alternate sub/pub methods than ActiveSupport::Callbacks

From here, the next thing to do to clean it up farther is create a
CheckoutRequest object to start wrapping the functionality of the params
into cleaner portions.

Fixes #4052
call compute_<computable> so we can enforce the calculator supporting dynamic compute methods

Related to #4041
always expect a computable object remove the (almost) duplicate code and raises.

Related to #4041
improve exception when the compute_<something> method is not implemented.

Related to #4041
raise the proper message so developers will get information where to implement what.

Related to #4041
update comments on the compute method

Related to #4041
the case statement is no longer needed since we call the proper method automatically.

Related to #4041
make sure we save the original caller to show the correct calculator path when the method is not implemented.

Related to #4041
use a proper PORO instance instead of a double (otherwise it wants to calculate compute_mock) make the shipping calc specs green

Related to #4041
use the correct class name in the message. The caller is not returning the subclassed calculator.

Related to #4041
do not automatically call to_package on compute_shipment improve the error messages in shipping_calculator as well.

Related to #4041
improve the specs to better document the shipping_calculator

Related to #4041
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