implement winner syntax and WINNER sub.
update usages of winner in the setting
a single named positional is fine for done/more, too.
chase lots of changes to winner:

- all the statements are now in the new class "combinator_declarator"
- "later" is now called "wait" and always takes a parameter.
- "combine parses, but throws NYI for now.
the previous attempt was intent on TTIAR'ing :(
Make sure we test winner.t in WINNER branch
fixes for wait $n and winner *
listify the expression for winner

this makes single-argument winner work.
use Promise.Bool instead of has_result/value.
hotfix for winner swallowing last.
catch => "quit", NYI for quit blocks
Merge branch 'WINNER' into nom

this gives us syntax + implementation for winner blocks
containing done, more and wait, which work for promises
and channels. Some edge cases may be missing, but it's
a start.