Validate source on payment if payment method's requires a source

* Fixes a multitude of errors related to creating payments with no source in the checkout flow
Yeah, `payment.source_required?` defaults to true unless you overwrite it. We don't overwrite. I can triple check though.