new recurring charge API

These are taken from the recurring GlobalCollect fork.

The test stinks.

Change-Id: Id9f280a243c9211336b3f1d7938ca1e13b42dddc