For Subscriptions v2.0.
* Use new 'woocommerce_subscription_failing_payment_method_updated_' hook
* Use new wcs_is_subscription() method to run process_subscription() when the
transaction is for a subscription object.
* Save the card and customer IDs on the 'shop_subscription' post from the renewal
order rather than saving it on the order which purchased the subscription.
* Add new save_subscription_meta() method to allow us to save customer ID both
in Subscriptions 1.n on the original order and in 2.0 on the subscription/s
created for the order)
* Use the new 'woocommerce_scheduled_subscription_payment_simplify' hook and
deprecate use of the old 'scheduled_subscription_payment_simplify' hook by
moving it to the WC_Addons_Gateway_Simplify_Commerce_Deprecated class
* Use core WC methods on the renewal order passed to scheduled_subscription_payment()
to process the payment rather than having to call special Subscriptions API methods
like WC_Subscriptions_Manager::process_subscription_payments_on_order() and
WC_Subscriptions_Manager::process_subscription_payment_failure_on_order()
* Use the original order's total to determine the amount to charge up-front to
save having to call WC_Subscriptions_Order::get_total_initial_payment()
* Use a description for recurring payments that is consistent with standard orders,
i.e. "{Site Name} - Order {order_id}" instead of a description that does not include
the renewal order's ID. This helps link payments to orders (which can then be traced
to subscription/s).
* Using __CLASS__ in valid_response() prevents inheritance, as __CLASS__ is always resolved as the parent class. A descendant class would have to copy/paste the whole block of code for it to work correctly. Solution: replaced it with $this, as the valid_response() method is not static, and neither are any of the "payment_status_" methods.
* Replaced all "private" properties and methods with "protected" ones. This will make it easier to extend the gateway classes, without having an impact on its normal usage.
So that if the renewal is for a failed payment, the the new value is set
on the renewal order's `'_simplify_customer_id'` post meta value and can
be copied back to the original order in `update_failing_payment_method()`.