working with donations

The payment app should now be able to handle the donation transaction as well as a subscription transaction.

The code is pretty messy so I might clean it up a bit before I merge this down.