Fixed a stupid mistake in tests
Updated 'business logic' of terminal partitioning

- Removed explicit/implicit addition distinction
- Moved on to updated is-a/must-be model
Abstracted out verifictator definitions

Less copypasta, less typing, more sense. I believe, this is the way
it should be; going to improve on this, as the tests (and interface)
are seem to be more or less stable now--that is, I can spend time to
make the code pretty, not only correct.
Updated standalone terminal partitioning
Updated extension terminals
Cleaned up terminal partitioning internals

- Unified macrofunction names, made them match entity names
  from the documentation.
- Fixed some error messages to match the documentation.
- Unified usage of _ for else branches.
- Renamed 'description' -> 'definition' as in the doc.
- Reduced copypasta amounts by introducing more metadefinitions
  for standard verifiers and checkers.
- Fixed toplevel implementation due to the previous item.
Updated 'business logic' of terminal partitioning (x2)

(All terminal and toplevel tests pass.)

- Fixed names, etc. due to renamings.
- Fixed a couple of incorrect error messages.
- Fixed a couple of incorrect tests.
- Moved '$report' forms to structure-* libraries.
s/description/definition/ for terminals

To be consistent with documentation. Definitions are sexprs provided
by the user. Descriptions (will be) in-memory structures representing
respective definitions.
Merged branch 'partitioning-terminals' into 'partitioning'

Toplevel and terminal partitioning is now fully implemented.
Now I have some helpers for verification macrofunctions and
general vision on how they should be used, so nonterminal
implementation should be easier to do and cleaner to write.