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
Improved membership component to recognise membership requirements config
Added ‘dependson’ functionality to checkout components. This meant that I could allow creating new memberships.
fixed most unit tests to comply with latest changes
all unit tests passing now
Added missing config to CheckoutComponentTest
initial work on moving config to yaml
Moved ShopConfig countries list to yaml file.
Moved AccountPage and CheckoutPage OrderManipulation extension to yaml
started working on a example yaml file
WIP: moving config to yaml
Mass update of public statics to private
further work on moving everything to use config system
FIX: all unit tests now passing
Allow checkout to be modified with injector
FIX: order processor test correctly logs out admin user when necessary