Correctly calculates PP Express discounts for non-fractional currencies

My solution to fix https://github.com/Shopify/active_merchant/issues/759

PayPal Express does have a shipping discount field, but if you want to have a discount on the order itself you just have to add an extra item with a negative amount.  As discussed in the issue, that causes problems when you've got non-fractional currencies and percentage-based discount codes.

To fix this, we just need to round up the subtotal and the order total in these cases.  If the order is placed in a non fractional currency, and it has a discount code that does not end in an exact dollar amount, then we round the totals.  Eg. a $5 item with a $1.01 discount.  The subtotal is $3.99, the discount code gets split at the decimal and ends up as -$1.  We used to send the subtotal as $3 (also split at the decimal), but this PR will round that up to $4.  $5 - $1 = $4, we're good.  Same thing as a $5 item with a $1.99 discount.  The subtotal is $3.01, this will round it up to $4, and now $5 - $1 adds up.  When the discount is an even $1, the subtotal is already $4 and nothing happens.

The discount code is always the last item sent in an order, so this method rounds the totals if the last item has a negative amount that does not end in .00 (only discount codes can have negative amounts.)  I had to pass the entire options hash into the calculate_total method because it needs to check that options[:items].present?

I also slightly modified the add_payment_details_adds_items_details test because it threw a 'can't convert Symbol into Integer' error when it just sent :items => [1] and didn't specify that 1 was the amount.

Review
@jduff @BlakeMesdag