Redsys: Improve handling of order_id

Previously, we were raising an ArgumentError if the order_id didn't
comply with Redsys order_id formatting rules.  Now we try to clean it up
the best we can and we no longer raise the ArgumentError.

The motivation for this is pretty straightforward.  Most gateways are
pretty lenient about the formatting of fields like description,
order_id, etc.  Users of Active Merchant pass these fields to multiple
gateway types and they don't expect an exception to be raised if a value
doesn't comply with a given gateway's particular rules in terms of size,
format, etc.

I wish I could claim credit for how we're cleaning up the order_id to
account for the quite particular rules Redsys has around this field.
The truth is that @ntalbott is the mastermind behind the simple
mechanism we're using.
DIBS Payment Services

This commit is maintained separate until DIBS setup a sandbox.
Code by @maxwhite