hygiene, properly clean up cothread resources when finished

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
Merge branch 'code/hygiene'

* code/hygiene:
  hygiene, properly clean up cothread resources when finished
minor, try Bruno Haible's libutf8 and provide a terms8 that is fixed to alnum chars

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
minor, use a state machine instead of a streak counter

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
minor, operate in terms of struct cls_s, which collectively ...

determines the width of the character as well as its class.

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
minor, factor out use of libutf8 again, ...

Instead we include the bits we need directly.
Also, we want to be locale independent so we can't use libc's take on things.

Use data from unicode.org and a little code generator (gencls) to construct
a big switch of switch statement.

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
major, rename terms8 to terms, superseding the plain ascii version

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
minor, adapt .ggo options to reflect that charsets can't be specified anymore

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
chore, make terms(1) depend on the .cases files

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
test, kick charset based terms(1) regression tests

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
test, adapt tests to new terms(1) output

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
chore, make clitoris output verbose in the error case

Signed-off-by: Sebastian Freundt <freundt@ga-group.nl>
Merge branch 'feat/utf8-terms'

* feat/utf8-terms:
  chore, make clitoris output verbose in the error case
  test, adapt tests to new terms(1) output
  test, kick charset based terms(1) regression tests
  chore, make terms(1) depend on the .cases files
  minor, adapt .ggo options to reflect that charsets can't be specified anymore
  major, rename terms8 to terms, superseding the plain ascii version
  minor, factor out use of libutf8 again, ...
  minor, operate in terms of struct cls_s, which collectively ...
  minor, use a state machine instead of a streak counter
  minor, try Bruno Haible's libutf8 and provide a terms8 that is fixed to alnum chars