Banwire: Use proper key for billing address zip

The standard in ActiveMerchant is to use :zip, but Banwire was looking
for :zipcode.
Webmoney: Add useful accessors to notification

Adds accessors for gross, item_id, and amount to the notification
object.

Closes #452.
Fix running tests under ActiveSupport 2.3.14
SagePay integration: Remove truncate dependency

Using ActiveSupport's String#truncate is problematic, since it is not
present in ActiveSupport 2.3.x, which ActiveMerchant still tries to
provide support for. It is also problematic in that it adds yet another
ActiveSupport dependency, when I think we'd prefer to strip out
ActiveSupport usage altogether.

This makes the description passed via the SagePay Form integration a bit
less pretty, but truncate can easily be applied by callers before
handing the description off to the helper if the old behavior is still
desired.
DRY the Gemfile
Make the default Gemfile Rails dependency explicit

Tests in 1.8 started failing recently on Travis, and I tracked it back
to a change in the Rails/ActiveSupport version being loaded. We did not
change anything in our dependencies, but I think something has changed
in rubygems.org that has triggered an older version (2.3.14) to be
loaded, whereas 2.3.14 was loaded previously.

If we want to continue to claim 2.3.x support, we need to set up a
proper Gemfile matrix and fix the tests when running on 2.3.x. Or we
could just drop 2.3.x.
Fix tests dependent on empty tag generation

Newer versions of Builder (which may or may not be selected by bundler)
generate an auto-closed XML tag in the case of an empty tag rather than
an open and a close tag. These tests were depending on the latter
behavior.

These tests are way too brittle for my taste, but the goal at this point
is to simply get all tests passing again.
Elavon gateway: Add sales tax parameter support

Updates the ElavonGateway to use a consistent :tax parameter which is
passed as the ssl_salestax param, this parameter is required and will
cause payments to fail when missing.

Closes #455.
Add WebPay gateway

https://webpay.jp/

Webpay is a Japanese payment gateway which supports JPY payment
processing in Japan.

Closes #457.
iTransact gateway: make void API consistent

The iTransact void operation had a funny interface; just about all the
other gateways have a 2-argument void interface (authorization, optional
options). iTransact had a 3-argument one, with a required amount that
was just ignored. The 3-argument version has been removed in preference
to the proper 2-argument interface.

Also tweaked the tests slightly.

Closes #463.
Stripe gateway: Pass city in add_address

Closes #466.
Paypal gateway: Can change recurring balance

Adds support for OutstandingBalance in the
UpdateRecurringPaymentsProfileReq request.

Also adds "n1" prefixes to the Username, Password, Subject, and
Signature fields in the add_credentials() functions. This is due to a
bug with PayPal that seems to only be triggered when changing the
outstanding balance. The prefixes should be optional and have no effect
on authentication.

Closes #458.
Revert "Make the default Gemfile Rails dependency explicit"

This caused an issue with double dependencies for rails which
caused bundler to fail.

This reverts commit b0f7787fdeb64e193014057fc0ce1798e5200c74.
Mercury gateway: test cleanup
Mercury gateway: Fix authorizations API

The original implementation required passing around a ton of extra
fields for follow-on transactions, rather than encoding those values
into the authorization. Note however, that even with this changed, all
Mercury transactions appear to require the full credit card to be passed
in, which is non-standard ActiveMerchant.

Also strips out all support for track2, voice auths, and batch
processing, since these are not typically supported by ActiveMerchant.
If a champion that is going to use them actively wants to add them back
in, be my guest :-)
Mercury gateway: Support refund properly

We had `void`, but it was really `refund`. Renamed, and dropped support
for reversing a reversal.

Also dropped support for adjust since it isn't ActiveMerchant standard.
Update CHANGELOG
Stripe gateway: Adding Canada as a supported country
Set up a matrix of gem versions to test against

Currently, for better or for worse, ActiveMerchant is very dependent on
ActiveSupport, and is sensitive to changes in it. The main development
Gemfile for AM, though, simply allowed the version of ActiveSupport to
float, and no CI testing was being done against the versions of
ActiveSupport/Rails that AM should explicitly support. This allowed test
failures to creep in unnoticed, and when bundler suddenly started
resolving a different version of ActiveSupport when running CI, meant
lots of inexplicable breakage.

This changeset outlines an explicit set of Gemfiles for the versions of
ActiveSupport that ActiveMerchant currently claims to support. These are
then plugged into a Travis matrix, such that each one will be explicitly
tested for compatibility, and regressions in older versions will show up
immediately. The default Gemfile is set to track Rails 3.2; when 3.2 is
superceded, it is expected that the current default would get renamed
and a new default introduced to track the latest ActiveSupport.

To run tests against a particular Gemfile, you can simply set your local
BUNDLE_GEMFILE environment variable to one of them, i.e.:

  export BUNDLE_GEMFILE=Gemfile_rails23

Closes #470
Account for differences in Builder versions

Older versions of the Builder gem do not auto-close empty tags, and so
these tests need to account for the fact that the XML they are (very
brittle-y) checking may have auto-closed or not auto-closed empty tags.