Add avs_result and cvv_result codes to Optimal Payments
Move rexml text into a method and dont rescue nil
Balanced: Add amount to refund method signature

The proper method signature for Gateway#refund is:

    def refund(amount, identifier, options={})

But Balanced had:

    def refund(identifier, options={})

With the amount optionally passed in the options hash. This deprecates
the incorrect signature (for backwards compatibility purposes) and
conforms the method to the correct signature.
Orbital: Fix void method signature

Gateway#void should have the method signature:

    def void(identifier, options = {})

But Orbital had the signature:

    def void(amount, identifier, options = {})

This fixes the signature, with a deprecation warning if the old
signature is called.

Also passes the amount (if passed via options) on to Orbital, which
allows for partial voids.

Closes #531.
Orbital: Remove the remote secondary url test

The fallback to the secondary url is already tested in the unit tests,
and the remote test for it was completely broken.
Orbital: Fix warnings in remote test
Orbital: Add void unit test

This adds a unit test for void, and also moves the deprecation test for
void from the remote test to the unit test.
Eway Managed: Add query_customer API as #retrieve

Eway Managed provides an API endpoint to return details on a stored
payment method, and this exposes that API via the #retrieve method.

Closes #549.
NetPay: Fix the signature for void

This makes the interface to #void consistent with the other gateways.
It does this by building the authorization and then splitting it later
to get the parts that we need. Passing the amount to void is still
supported via options[:amount].

No deprecation is being done for the incorrect signature since Netpay
was added so recently.

Also fixes an intermittent test failure on 1.8 caused by Hash order
dependence.

Closes #553.
Cybersource: Add check support

Allows developers to use the ACH features of the Cyber Source Gateway
by passing Check objects in place of CreditCards.

Closes #554.
Add test for avs_results not being given back
Merge pull request #472 from Shopify/add-optimal-payments-avs-cvv-results

Add avs_result and cvv_result codes to Optimal Payments
Fix broken remote tests due to changes to the test servers on Merchant Ware's side.
Use MerchantWare's v4 api for voiding transactions. Allows for voiding authorizations without first capturing them.
Fix syntax error for ruby < 1.9
Coding style fixups.
Moneris: Use a capture of $0 for void

Moneris uses a capture of $0 to accomplish the logical equivalent of
what ActiveMerchant calls a void. This just delegates
`void(authorization)` to `capture(0, authorization)`.

Fixes #516.
PayPal Express integration: Fix received_at

The received_at field was being parsed in such a way that the timezone
was being ignored; the most difficult part of fixing it was getting
something that worked on 1.8 as well as 1.9.

The only potential impact of this would be on a consumer of the method
that assumed a particular timezone; previously the timezone was the
callers, but now it is always UTC.

Fixes #542.
PayPal Express integration: Fix received_at tests

In some 1.8 environments, UTC is apparently GMT.
Merge pull request #557 from Shopify/merchantware-void-update

Fix transaction voiding issues with MerchantWare integration.