data ctors must be capitalized, applications parenthesized in patterns

If data ctors begin with a capital letter and all ctor application
must be parenthesized, then parsing patterns becomes much easier:

   match x with
      (Nil)          => <<expr>>
    | (Cons y (Nil)) => <<expr>>
    | (Cons y ys)    => <<expr>>
added longer test case to parser/match
updated grammar

(documentation only, no code change)
added build target to Makefile
(wip) added fn Desugar.subpats, tests, lifted Parser.pat to Pattern.t
completed match compiler, from Parser.t -> Parser.t

share the AST type created by the parser for this desugaring,
desugared AST has `match` expressions replaced by `case` expressions,
with simple (non-nested) patterns