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.
Braintree always charges default card if you pass customer_id.  Change to payment_method_token in order to allow charging any card. https://developers.braintreepayments.com/ios+ruby/sdk/server/transaction-processing/create-from-vault#customer-id
Braintree: Add regression to ensure payment_method_token is used in favor of customer_id.
Make payment_method_token an option.