create a new payment when refund successful

this new payment is an offset of the original payment, source is the actual payment

fixes #82
Fixes #83

Conflicts:
	app/models/spree/gateway/pay_pal_express.rb
Pass cancel token back to checkout

Reasoning: as it is we lose the information that an order has been canceled. Better to keep it around so programmers can customise post Paypal failure cancellation experience.

Fixes #63
allow to intercept line items and request details

allows to change the paypal request by overriding the methods in a controller decorator. e.g. to allow digital items.

Fixes #86
don't error out, if address page was missing

Fixes #72

Conflicts:
	app/controllers/spree/paypal_controller.rb
Support Spree 2.2.2
Small documentation update for new Git location
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
Add test for line item adjustments

Fixes #101
Don't ask for shipping information

Spree gathers shipping in the address step, so it is unnecessary to
request this from paypal. This removes the prompt for a shipping address
in the paypal interface, which should be a better customer experience.

Fixes #109
Workaround for #103
Add ssl_allowed to PaypalController

Previously, when `redirect_https_to_http` was enabled, this would
redirect (or issue 426) when requested with SSL. Obviously SSL should be
allowed (if not enforced).

Fixes #105
Fixes #108
Merge pull request #95 from Daan-/patch-1

Small documentation update for new Git location
Merge pull request #94 from cloudrck/2-2-stable

Support Spree 2.2.2
Only include additional tax adjustments so that total matches to get through PaypalExpress checkout
Merge pull request #120 from godaddy/paypal_with_inclusive_tax

Only include additional adjustments so that total matches to get thr...
Allow tax reduced items to checkout