Restore Moneris gateway void on capture/purchase

As per #734, this restores the original void behaviour to work on captures and purchases and combines the update in d9a10567587efb6652aece2da9a74ec7be007711 to allow the cancellation of an authorization by passing `:authorization => true` as an option when calling void. This also restores an important test (test_failed_purchase_and_void) that was removed, likely because it was failing under the previous update which caused voids to only work on authorizations. Also added a test for a successful authorization, capture, and void.

(Note that the Moneris test gateway is flakey. Under normal circumstances, all tests pass; but when the gateway is flakey, there may be failures which appear to be caused by invalid XML.)