rename promotions to promotionCatalog for consistency with api; refactor checkout to more OOP style
fix missed renames of promotion to promotionCatalog; update README design notes on promotions
refactor to parse promotion types in a more extensible manner; move parsing of promotions to separate classes