Support template contributions
Normally when a subsequent payment comes in, the repeattransaction API will copy the previous Contribution to generate the new one.
A template contribution can be provided instead as the source of the data for the new Contribution, and this solves several problems, such as allowing the template to be changed between payments.
Another driver for this feature is upgraderecur#1