Refactoring the way recipes and tests work

I'm splitting out each subsection / feature into separate cookbooks so that they're tested separately and can be refactored by themselves. Having them in separate files makes it easier to track when they change, who changes them, etc.