added Validate.notEmpty
optimised SeparatedListMatcher a little; reduce the number of object allocations as well as memory overhead
designed a new different approach to an incremental push parser; rather than being stack/continuation based this one is finate state automata based; the previous approach had too many edge cases around mixing rollbacks with callbacks and being able to resume at any point that complicated the implementation too much.  an fsa approach will be more consistent, and probably faster to execute too.  it borrows much from regular expression theory.
checkpoint in fsa push parser; sketched out the starting blocks
added appendConstant to Node; also enhanced Node to reuse inner nodes if the labels match and not otherwise
added ignore to wip tests