FirstData E4: Allow passing CAVV through

Closes #1299.
Braintree Blue: Remember capture transaction id

Now the response from a capture actually has a value for its
authorization.  This allows captures to be voided before they're settled
and refunded after that.

I'm surprised this hasn't been hit before.  Without it, it's difficult
to refund/void captures.

Closes #1303.
Eway Rapid: Truncate some fields

Eway Rapid transactions fail if the parameters don't fit within the
required boundaries.  Therefore, we now truncate fields to their maximum
length.

In particular, we're now truncating order_id, description, billing_address1,
billing_address2, billing_city, shipping_address1, shipping_address_2,
shipping_city, and card_name.

Relevant docs:
http://api-portal.anypoint.mulesoft.com/eway/api/eway-rapid-31-api/docs/reference/transparent-redirect

Closes #1308.
Optimal Payment: Make account mandatory field

The Optimal Payments gateway requires an accountNum field as part of the
credentials. This commit makes it a mandatory field while also deprecating
the existing login field which is called store_id in Optimal vernacular.

Closes #1307, closes #1309.
Worldpay: Improve address defaulting

We've seen that Worldpay can, without warning, turn on the requirement
for address1 and city.  Previously, we were defaulting things like
postal_code and state.  Now we default more of the address fields if
they're not specified.

In theory, this should help some customers, it shouldn't hurt any
existing customers, and it should help customers down the road if
Worldpay changes the address requirements on an account.

Closes #1310.
Update net_registry URL
Merge pull request #1312 from Shopify/net_registry_url_update

Update Netregistry URL
Authorize.Net: Add maestro as supported card type

Maestro is supported as a card type by some merchant accounts that
Authorize.Net backs up to. Unfortunately the Authorize.Net sandbox does
not support Maestro, so a remote test was not possible.

Closes #1304.
Worldpay: Improve address defaults

Previously, we defaulted parts of the address that were unspecified.
Now we also default the parts that are explicitly set to a blank value.

Closes #1311.
Braintree Blue: Pass name when tokenizing

Closes #1306.
Moneris: Add :avs_enabled option
Wirecard: Improve error handling

If Wirecard is having a really bad day it is possible for their API to
return error responses that are not contained within the W_JOB element.

This adds a new method to correctly parse these Wirecard
having-a-bad-day responses, and also pluck out the ErrorCode as well.

Closes #1315.
Merge pull request #1317 from Shopify/moneris_avs_flag

Add :avs_enabled option for Moneris
Revert Optimal encoding change
Merge pull request #1318 from Shopify/revert_optimal_encoding

Revert Optimal encoding change
Fix wirecard formatting warning
Revert net_registry URL encoding
Merge pull request #1329 from Shopify/fix_net_registry_encoding

Revert NetRegistry URL encoding
Worldpay should support HashWithIndifferentAccess
Review feedback