Fix "Save & Continue" + Payment Profiles.

Previously, the save & continue button would not be removed when
combined with certain payment profile options.

Fixes #102
Re-factor JS to add listenable events.

hideSaveAndContinue and showSaveAndContinue are now events which we can
listen on to trigger alternate logic.

From #102
clear order_id session (mirror CheckoutController)

I noticed a lack of symmetry between the update method in Spree::CheckoutController and here.
https://github.com/spree/spree/pull/2557

More generally the problem is that we have duplication of the success code within Paypal Express and within Spree Core code. This has caused problems in the past. A possible refactor would be to slap the four lines of completion code (e.g. setting the flash ecommerce) into a Spree Core module (exiting or new) that gets pulled into this and checkout controller.

Fixes #64
Use discounted shipping cost instead of ship_cost.

PayPal will reject orders which do not have their totals line up.  If a
Free Shipping promotion is applied to an order, the initial shipping
cost will be used and the free shipping promotion will not be accounted
for.

This will cause the order to get rejected by PayPal because the order
total doesn't match the sum of the line items.

Discounted ship cost should be the correct value to use here.

Fixes #99
Merge remote-tracking branch 'spree/2-2-stable' into 2-2-stable