Split payment models into abstract and concrete

This addresses issue #462. To remain consistent with other applications in Oscar, I split the models of the payment app into abstract and concrete ones. This allows the customizing of the models as suggested in the documentation.

Please let me know if I should change anything.