Add UserCancelled Exception

During many payment flows, the user is able to cancel the process.
This should often be treated differently from a payment error,
e.g. it might not be appropriate to offer to retry the payment.

This exception adds gives us a good way to address that case.

Closes #1528.