Checkout with existing addresses and credit cards

Note: there is a bug if you have multiple payment gateways, but most
only use one. So, I will revisit later.