Failed payment

Eileen,

This PR brings my code in line with yours and then ...

* When a payment fails, the corresponding Contribution is marked as 'Failed' and the Recurring Contribution is updated (the logic is that there is an offline business process that notices failures and resolves them before the next payment is due.)
* Makes the processing of Scheduled contributions symmetric with that for Pending contributions (to support the previous change and to clean up the code)
* Fixes the subscriptionURL problem I was having
* Prevents messages being lost from $apiResult (the '+' operator does a union rather than concatenate)
* Sets the compatibility to include 4.5 (IMHO)