Let the Parser keep track of Recipes and Ingredients

The CheffeParser now holds a map of recipes found in the source file.
Each recipe contains a symbol table of ingredients in that recipe. It
will eventually also maintain a list of the method steps in the recipe,
and anything else it needs for code generation.

The Parser also keeps a pointer to the recipe it's currently working on.

parseRecipeTitle() now returns the recipe title via an out parameter.
Give SourceLocation a default column no of 1
Add test to check ensure can't be defined twice