Add parsing for primary block attributes

Does not actually add compatibility, since this requires that blocks define a
primary attr string to set when parsing a primary attr. Includes changes to
some of the internals of parsing to support this.
Add primary_attr support to blocks

Includes fixes to tests and fixes to the parsing tooling for correctness. Loses
code coverage.
Recover test coverage for Primary Attribute blocks

Adds a couple of tests to ensure that use of Primary Attribute blocks does not
break tokenization.
Improve tokenization tests on primary_attr blocks

Increases the number and kind of tests run on tokenizing Primary Attribute
blocks.