Merge branch 'partitioning-tests' into 'partitioning'
Reimplemented standalone terminal partitioning in a new way.

(All standalone tests actually pass.)

Now structure verification functions come in three flavors:

  $can-be:<x>? - a proper predicate (returns either #t or #f),
    provides a non-strict match with <x>: passing can-be test
    is necessary, but not sufficient for the thing to be <x>

  $is-an:<x>?  - a proper predicate too, but this time it is
    a strict match with <x>: passing 'is-a' test is a necessary
    and sufficient requirement for the thing to be <x>

  $must-be:<x> - an assertion that the thing is actually <x>:
    failure to satisfy such assertion is a syntax error;
    a passing assertion returns an undefined value

They all are implemented in terms of $verify:<x> functions. These
will be documented later, when all terminals are rewritted in this
way. Because I still do not entirely like how the functions are named.
Reimplementated extension terminal partitioning in a new way.

All failure tests actually pass. Success tests do not, because
valid extension terminals are not properly postprocessed yet.
This will be done together with some refactoring of the code.

Also, tests tweaks because I have found more peculiar clauses.

Also x2, tests are incredibly slooooow now. Need to do something
about it in the future. I do not want the define-language to be
as slow as these tests are.
Refactored and cleaned up terminal partitioning code

Now all tests pass.

Ditched out a fair bit of unused functions in meta-var processing.

Also updated docs (ha-ha).
Merged branch 'partitioning' into 'partitioning-tests'

Pulling updates to partitioning implementation to continue
writing nonterminal tests.
Added 'success' tests for nonterminals
Added 'failure' tests for standalone nonterminals

Also tweaked a bit terminal tests. I should consider doing certain
inspection and overhaul of error messages and test file naming.
Will get back to this after all nonterminal tests pass or so.