Create Explicit Test mode API calls

Currently, Stripe passes an instance of `STPTestPaymentAuthorizationViewController` to the `paymentAuthorizationViewController:didAuthorizePayment:completion:` method in the `PKPaymentAuthorizationViewControllerDelegate` delegate.

This trick works in Obj-C, but in more type safe languages like C#, this causes type casting issues.  
When creating Xamarin.iOS bindings for Stripe, this is a big problem and causes the testing of stripe to completely fail.

These changes introduce a new call in the `Stripe` class to be used explicitly for testing:
`testPaymentControllerWithRequest:(PKPaymentRequest *)request delegate:(id<STPTestPaymentAuthorizationViewControllerDelegate>)delegate`.  Furthermore, this requires an explicit protocol to be used to respond to test results (`STPTestPaymentAuthorizationViewControllerDelegate`) which mimics `PKPaymentAuthorizationViewControllerDelegate`.