Truncate product description when used as meta description

Fixes #2396
Add dependency on strong_parameters
Remove attr_accessible for Order model, see what breaks
Remove whitelist_attributes setting from application.rb
Add strong_parameters for CheckoutController + OrdersController
Refactors load_order in checkout controller

Creates one method for each logic requiring a redirect and make it a
before_filter. Hopefully making it easier to view that logic and change
it

Also removes invalid comment about #update being updated in promo. Since
there is no promo gem any longer
Removes #state_callback from checkout controller

Avoids confusion scenarios such as the one described in #2488. After
state callback methods does not make much sense at all. Besides it
doesn't behave as expected. Fixes #2488

Fixes #2557
Added CouponApplicator class

This is used within API's CheckoutsController and frontend's CheckoutController
and OrdersController.
Explicitly use master branch so that 'bundle config local.strong_parameters can be acknowledged
Account for situations where order parameter *might* not be passed

For instance, on the confirm screen there are no order attributes passed through, it's just a 'Place Order' button
Permit only order attributes for CheckoutController#object_params
Check for params[:order] before attempting to make it permissable
Remove ancient TODO from the bottom of orders_controller_spec
Let's be realistic about error messages in orders_controller_spec
Need to pass through order attributes to OrdersController#update in spec
Need to pass both checkout and order params through for orders_controller_transitions_spec test
Ensure coupon_code can be passed as a parameter in checkout controller
Correct usage of permitted_order_attributes within OrdersController
Add state_name, alternative_phone and company to address parameters
Pass through necessary order paramters in OrdersController controller specs