clarify some comments; add a few cases created during recipe parsing
add a few tests around weird symbols, empy, semicolon
move recipe state machine image to naescent docs directory
move several test functions out of main code into own files