Refactor IPay88 to follow correct integration using Notification
Refactor gateway selector error handling
Merge pull request #947 from Shopify/refactor-gateway-selector-error-handling

Refactor gateway selector error handling
Merge pull request #941 from Shopify/ipay88_notification

Refactor IPay88 to follow correct integration using Notification
USA ePay Advanced: Fix check handling
USA ePay Advanced: Fix card expiration handling
USA ePay Advanced: Fix custom trans responses

It was not working correctly for single items.
USA ePay Advanced: Fix capture amount

Closes #926.
Handle comma-delimited amounts with Valitor
NAB Transact: Fix capture/refund descriptor

Fixes a problem where merchant descriptor wasn't being handled for
capture and authorization requests.

Closes #936.
Braintree Blue: Add custom_fields & device_data

Closes #937.
Webpay: Add authorize & capture

Closes #942.
MerchantWarrior: Pass description

Merchant Warrior docs say the transactionProduct attribute is the
description:
http://cl.ly/image/0D0E3u3k1417/content.png

http://dox.merchantwarrior.com/files/MWE%20API.pdf

Use options[:description] like many other gateways to abstract this away
so we're not passing in custom options for each gateway.

Closes #945.
Stripe: Separate email from description

Before:
Specify the description for the purchase or authorization using the
options[:description] || options[:email].

After:
Use options[:description] for description.  Use metadata for the email.
Keep the 2 options separate as the Stripe docs suggest:

https://stripe.com/docs/api#metadata

Closes #946.
Add Payscout gateway

http://www.payscout.com/

Closes #899.
Merchant Warrior: Use billing_address

This allows folks to use either billing_address or address just like
many other gateways do.  Previously our Merchant Warrior support ignored
billing_address.

Closes #948.
Add SoEasyPay gateway

http://www.soeasypay.com/

Closes #830.
Fix accidentally overwritten test methods
Merge pull request #952 from jstorimer/valitor-comma

Handle comma-delimited amounts with Valitor
Bogus: Add Check support

Provides support for passing valid and invalid account numbers to the
bogus gateway and returning relevant error messages.

A valid account number is any account number that ends with 1.
An invalid account number is any account number that ends with 2.

Any object that responds to `account_number` will be treated as a check.

Note, because ActiveMerchant::Billing::Check has a `number` attribute
in addition to `account_number`, priority is given to `number` for
backwards compatibility.

CREDIT_ERROR_MESSAGE was removed because it was the same as
ERROR_MESSAGE.

Closes #944.