Order state added to order domain object.
Base customer and product classes added.
DefaultPricing class renamed to FullPrice.

IPricingStrategy interface renamed to IOrderItemDiscount.
IMembershipDiscount interface added to be able to get discounts according to different customer levels.
IDiscountRepository modified to return IEnumerable<IMembershipDiscount> instead of IEnumerable<IPricingStrategy> when GetDiscountsFor is called.
ShoppingCart has CurrentCustomer property now instead of the CustomerEmail to represent the currently logged in customer.
DefaultPriceCalculator class can use different default pricing strategy than FullPrice.
DefaultPriceCalculator's CalculatePrice now checks which discounts are available for the supplied customer.