Prep for 1.23.0 release
PayPal gateway: Support for incomplete captures

Allows leaving an authorization open by passing a `complete_type` to
capture:

    gateway.capture(60, authorization, :complete_type => "NotComplete")

Closes #367
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.