Fix the charge/voucher metadata mismatch error handling case
Remove the error case entirely and replace the metadata check with metadata storage of our own.
And ... incidentally ... fix handling of payment processor errors (as distinct from other IO exceptions). Previously these allowed the voucher to be marked as paid even if the payment processor error indicated that no, the transaction was not completed.
Fixes #77 (closed)