Don't ignore promo action beyond the first created

Currently Spree allow users to associate multiple actions, e.g
CreateAdjustment, to a promotion however it doesn't allow a promotion to
have multiple adjustments in the same other as the backend UI suggests.

It changes the `order.promotion_credit_exists?` api so that multiple
adjustments can be created for the same promotion even though only one
of them, the one with best amount, will be eligible.

Fixes #3262
Fixes #3276
remove duplicated :payments_attributes in attr_accessible on Order

Fixes #3294
Implemented add, receive, and cancel for Return Authorizations API.

Fixes #3220
[api] reset permalink to nil when ActiveRecord::RecordNotUnique thrown in ProductsController
Add missing translations for option_type_placeholder and variant_placeholder
CreditCard model will now validate that the expiry is not in the past
[api] Correctly parse payment information in Checkouts API

What was happening before was that the parameters were expected to be something like:

     params[:order][:order]

Which you and I both know is just plain wrong.

There were no tests for this particular part of the Checkouts API, so it escaped our notice... until now. There are tests now.

The way I found this was by building spree-marionette and trying to submit payment information to the API, and it would return a $0 amount for the payment... which seemed very wrong.

This is now all fixed.
Return *useful* errors when a payment's source fails validation

No more 'source is invalid' nonsense