Cleaner payment classes

The parent class `Payment` shouldn't include `Rows` which are Checkout specific. Move all `Row` logic to CheckoutPayment subclass.