Allow transactions to be forcibly failed

Mostly needed because refunds cannot easily be tested against the
sandbox, but I still need to check what happens on failure.

Since it was odd to just add to refund, added to sale and void as well.
Also test coverage for create_failure, since I needed to allow
customizing the message.

Note: I'm not 100% sure what structure comes back on these failures, so
this might not be totally sufficient for everyone.  Since the feature
didn't previously exist, I'm counting it this not breaking existing
tests.