Initial payments abstraction

This is an initial commit for the payments abstraction. The paypal portion isn't implemented yet and a service layer needs to be written for the donations model. But our app "knows" what a payment is now.
What's this class used for? Are PaymentInstruments supposed to inherit from it? If so should PaypalCreditCardInstrument inherit from this?