fix Grammar Parser: accept arbitrary newlines

sacrificing efficiency for clarity via backtracking:

> (p `sepBy1Slow` newline) `sepBy1Slow` (newline *> newline)

is supported.
build Parse instances from Grammar!

see Commands.TH.buildParseI

> Production ''Command [
>  Variant ''ReplaceWith
>    [Part "replace", Hole ''Phrase, Part "with", Hole ''Phrase],
>  Variant ''Click
>    [Hole ''Times, Hole ''Button, Part "click"],
>  Variant ''Undo
>    [Part "undo"]]

  ->

> instance Parse Command where
>  parse context
>   =    try ((pure ReplaceWith <$ (word "replace"))
>              <*> (parse (contextual (word "with")) <* (word "with"))
>              <*> (parse (context)))
>
>    <|> try ((pure Click)
>              <*> (parse (contextual (parse context :: Parser Button)))
>              <*> (parse (contextual (word "click")) <* (word "click")))
>
>    <|> try (pure Undo <$ (word "undo"))