medium: cliformat: Nicer display for ( a b sequential=true ) sets

Instead of parsing a two-element sequential set into

    _rsc_set A B

display it as

    ( A B sequential=true )

..since the first form is undocumented and confusing.
medium: parsnip: Parsnip, a combinatorial parser

Implementation and tests for parsnip, a combinatorial parser.
Should simplify the parse module significantly.
many1 and case-insensitive match in text()
various half-finished thoughts on param parsing