Add the notion of food categories to the recipe database and browser

Notice how the implementation of SimpleDatabase.allCategories is
decoupled from its interface; it's a private member of the
SimpleDatabase module and can be replaced at any time without disrupting
the public API.