Refactor, extracting little functions to build the words
Extract BottleQuantity
Add strategies and simplify interface
Add a more generic factory. Should now be open / closed
Introduce six-pack

I'm living with a bit of duplication to avoid inheritance in the
strategies. I some ways I prefer this anyway, as it's a bit easier to
read than having to go up and down the hierarchy.