checkout component base class

Implemented some checkout components.

Further fleshed out components, and validation

renamed CheckoutValidator to CheckoutFormValidator

Adjusted CheckoutComponent api.
Added RequiredFields.

Onsite payment functionality

Always get the only selected payment method, if only one exists.
Validate onsitepaymentcheckoutcomponent.
Changed Order canPay function to check if there is any outstanding amount.
Improved CheckoutForm

WIP: AddressBookCheckoutComponent , which adds the ability to use the member's address book for choosing addresses