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.