Implement retry status for sustainer processing

Added a new setting that makes the number of retry attempts for a sustainer charge configurable (fundraiser_sustainers_max_processing_attempts). Valid values for this setting are 3 - 10.

Also implemented a new retry status for sustainer processing. The sustainer record will now go into a 'retry' status until it reaches the maximum number of retry attempts. The order itself will remain in a pending future payment status during the process.

There were some subtleties within. Previously the attempts column was updated after a sustainer donation was processed, it is now being incremented at the time it's selected for processing. The module's implementation of hook_fundraiser_donation_decline has also been replaced with a method that can behave differently depending on how many attempts have been made to process the transaction.
New hook for fail. Would probably make sense to have fundraiser_sustainers implement this hook and do the logging there. Salesforce donation module is implementing this hook to re-queue the failed donation.