Cycle incremental tests, incremental parser start.

Cycle tests now test parsing and serialization incrementally for each
position in the buffer. Incremental parsers return the start position,
the offset into the buffer when parse is complete.

Some notes on why I've moved to cycle and obliterated the legacy.
Intended for an earlier commit message, but it's still relevant.

While I'm renaming and reconsidering, I'm going to reconsider the
structure of all the tests now. Shaking my head gear clear of test
driven design piffle, I don't want to have individual tests for parse
and serialize for each data type. I want a single round trip test for
the implementation of each pattern.

Splitting up the tests in service of the test-driven unit fetishism has
made changes laborious and the test suite brittle. So long as I'm in the
processes of visiting each and every parse and serialize test and
reformatting them by hand to use named parameters, I'd like to
consolidate them into a single test that tests that a buffer can go
through a parser, then a serializer and be the same as it was when it
went in.

While I'm at it, I'd like to get started on full parsers that return
results and purely incremental parsers. A cycle test would generate all
and test all. I qualified the generated parsers and serializers as `bff`
parsers and serializers, to distinguish them from whole parsers and
purely incremental parsers.

Closes #240.
Closes #239.
Closes #225.
Closes #218.
Closes #175.
Closes #174.