Not every payment method has to handle cancel

according to these two issues
https://github.com/spree/spree/issues/5307
https://github.com/netguru/spree_payu_integration/issues/5
I believe we has to check if cancel method is available before call it.
raise error if payment_method sub-class doesn't override cancel

fixes #5495