updated sagepay sanitize to truncate description field. fixes #370
Revert "updated sagepay sanitize to truncate description field. fixes #370"

This reverts commit f28a58112f2489334591faa87f5c637792d8d1a8.
SagePayForm: Updated sanitize to truncate description field. Fixes #370
Moneris gateway: Add support for vault

Adds #store, #unstore, and #update, and support for them to #authorize
and #capture.

Closes #369.
Realex gateway: Fix remote tests
NAB Transact gateway: Add card descriptors

Allows passing card descriptors through to the gateway via metadata.
Works via passing :merchant_name and/or :merchant_location when running
a purchase. Only supports immediate purchases at this point.

Closes #373.
Paybox Direct: Treat all response codes besides '00000' as hard failures and never as fraud.
Deprecate #type method on CreditCard
Replace references to :type with :brand
Cleanup little gateway tests
Re-word deprecation message
Prepare for 1.24.0 release
Clean out the .gitignore file

.gitignore should only contain exclusions for project-specific files,
typically generated artifacts of one kind or another. System specific
files, like editor backups, ruby version config files, etc., should be
configured globally by individual developers.

Tweak for #369.
Cybersource gateway: Add support for subscriptions

Adds support for #store, #update, #unstore, and #retrieve. Also adds the
ability to use a subscription code with #authorize and #purchase.
eWAY gateway: Update docs. Require address.

Docs:

* Remove old copy & paste about TrustCommerce.
* Add info about transaction results.
* Add test credit card number, provided by eway docs
  (http://www.eway.com.au/developers/sandbox/direct-payments.html)

Code:

* :order_id is not a required parameter, so remove it
* Add :address and :billing_address to required parameters, because if
  you don't pass address to gateway, you'll get:

    Error: Required XML tag(s) missing, or incorrect case used. Required tag Name(s): ewayCustomerAddress, ewayCustomerPostcode

* Remove tests for invalid expiration date and verification value.
  Seems like the Test eWay Gateway doesn't care about the validity of
  them and always returns a success code.

Closes #378.
Braintree Blue gateway: Always pass CVV on update

Always passing the CVV allows for "updating a credit card and explicitly
verifying the card" at the same time:

https://www.braintreepayments.com/docs/ruby/general/card_verification#credit_card_api

Closes #380
Add Fat Zebra gateway

Closes #377
Braintree Blue gateway: Support wiredump_device

For example:

    ActiveMerchant::Billing::BraintreeBlueGateway.wiredump_device = Logger.new(STDOUT)

Also, a developer can now set the Braintree logger level
(+Braintree::Configuration.logger.level) without having it overwritten
by ActiveMerchant.

Previously, ActiveMerchant was forcing the Braintree logger level to be
Logger::ERROR when a BraintreeBlueGateway was instantiated, even if an
explicit log level was already configured.

There is no reason for ActiveMerchant to set the Braintree logger or the
log level (unless wiredump_device is set) since the Braintree gem sets a
sane default already.
Add the Metrics Global gateway

Copied the Authorize.net gateway and stripped out the functionality that
is not applicable.

Updated the tests to account for the slight differences in response
format.

Added the public demo account information to the fixtures.yml file.

Added the appropriate documentation for the gateway.

Closes #382
Cybersource gateway: Move email requirement

The email field is not required for subscriptions, so this moves it
under add_address so it only affects standard transactions.

Closes #383