Added PaypalRecurringApi to PaypalExpressGateway
Add Code Climate badge to README
Add a Braintree Orange remote test for store

This tests the failure case of storing a card with the #store method.
Add FirstData Global Gateway e4

http://www.firstdata.com

Closes #500.
Update year and verification_value in README code

Sets a dynamic year so that it is always valid, and sets the
verification_value to '000' since the PayPal sandbox now requires it (
https://www.x.com/developers/paypal/forums/paypal-sandbox/please-use-different-payment-card).

Closes #510.
PaymentExpress: Add support for optional fields

Even though not documented for PxPost (it is documented for WebService),
the ClientType element on transactions can affect the way PaymentExpress
submits transaction to the acquirers. This commit gives control over
that element through the `:client_type` element in the options hash.

For completeness, access has also been given to the remaining optional
elements: `TxnData1`, `TxnData2`, and `TxnData3`, which can be set via
`:txn_data1`, `:txn_data2`, and `:txn_data2`, respectively, in the
options hash.

Closes #511.
PaymentExpress: Limit description to 64 chars

PaymentExpress enforces a max length on the MerchantReference
field of 64 characters.  This field is derived from the
description field which is passed in the options hash.

Documentation: http://www.paymentexpress.com/technical_resources/ecommerce_nonhosted/pxpost.html#MerchantReference

Note: This commit also includes a test verifying that TxnId is
limited to 16 characters.  This restriction was already
implemented, but untested.

Documentation: http://www.paymentexpress.com/technical_resources/ecommerce_nonhosted/pxpost.html#TxnId

Closes #512.
Wirecard: description max size is 32 characters

FunctionID is filled from +options[:description]+ for authorize and
purchase transactions, and cannot exceed 32 characters.
Litle: Add support for tokenization

Adds support for passing a credit card OR token to the authorize and
purchase methods.

Note: a token is not a reference (authorization <litleTxnId>) to a
previous transaction, but a token representing a credit card. A token is
created by the gateway (if configured for tokenization) and returned in
either explicit or implicit register token requests.

Adds certification tests defined by the LitleXML Reference Guide section
2.4.4.

Starts refactoring the LitleGateway class to match the patterns used by
other gateways.

Closes #514.
PayPal Common: Allow searching by ProfileID

Closes #517.
Add Spreedly Core gateway

https://spreedlycore.com

Closes #526.
Eway gateway: Fix response authorization

Now using the Eway transaction number as the authorization for a
purchase response.  This page describes the fields and what they're for:

http://www.eway.com.au/developers/api/direct-payments

This authorization can then be used for operations such as refunds.
Eway gateway: General clean up

A bit of refactoring and cleanup in preparation for some new features to
be added to the gateway.
Eway gateway: Add support for refunds

Closes #530.
Merge pull request #515 from mintdigital/paypal-express-recurring

Add PaypalRecurringApi to PaypalExpressGateway
Merge pull request #529 from brynary/master

Add Code Climate badge to README
Authorize.Net CIM: Allow omitting card expiration date

When using `update_customer_payment_profile`, the card number and
expiration date may not be available (and can't be retrieved using
`get_customer_payment_profile`). Both card number and expiration
date are required to make the update call. The Authorize.net API
allows sending a masked card number (e.g. "XXXX0027") and a masked
expiration date (e.g. "XXXX"), but `add_credit_card` will fail because
it expects the expiration date to be two integers representing month
and year.

This commit allows the expiration date to be omitted from
the passed in `CreditCard` object. If no expiration date is present,
`expdate` will return "XXXX".
Merge branch 'allow-masked-exp-date-auth-net-cim' of github.com:MonkDev/active_merchant into allow-masked-exp-date-auth-net-cim