Improve support for sending client encrypted credit card data

Some users might choose to encrypt cc info on client side and not record
anything related to credit card at all on db. See Adyen Client-Side Encryption
for example
Only check if payment source has_payment_profile?

Card info might come in encrypted so number won't be present and payment
source could be something other than a CreditCard object but still
support payment profiles