omit usage msg if small
shrink chtypes array down to 8 bit
saves 72 text and a lot bss
get rid of ulton() - a joke
saves 32 bss, but adds 84 text oO
save 176 text (92 text 32 bss relative to before last commit)
by making correct use of shf_* functions
* check.t: add new regression test "typeset-padding-1" according to TFM
* edit.c: remove debug stuff again; next time better use shl.c functions ;)
* sh.h: add format attributes to a few shf functions
* histrap.c, var.c: fix format string mistakes
* main.c, sh.h: error_prefix and warningf take bool not int
* misc.c: make chvt() stuff use shf_* functions
* misc.c: rewrite the TIOCSTTY stuff to be better integrated in mksh,
  since it originally was an external patch
* misc.c: chvt() no longer fails if e.g. chown fails due to e.g. R/O / fs
* var.c: fix typeset padding for right-justified zero-filled
if !MKSH_SMALL, str_save() can be a macro
use NELEM
cosmetics
* change EXECSHELL to /bin/sh (we can override it via environment anyway,
  and this is a sensible choice instead of ourselves)
* move this stuff from sh.h into exec.c where it belongs
* simplify set -o stuff

saves 8 bytes
overhaul parse_args - don't use strlcpy and strlen when overkill
also fixes off-by-one

saves 48 .text
rewrite getn() which is some kind of atoi with return code
costs 1 .text, saves 4 .data, 1 libc import
use errorf not bi_errorf if we want to abort
saves 16 .text ;)
use qsort(3) instead of rolling our own
saves 284 in .text, no added import since we already use qsort(3) once
correct a few protos and comments
saves 4 .text bytes and my nerves
use chown not fchown, and move the ownership check to earlier
saves 45 text, 4 data and security peoples' nerves
exit not _exit, 50 text 4 data 1 import
thanks to the nice property of my reimplementation of getn to also
return a value in case of an error (0 or the partial result, which
is the full result in case of trailing junk even), using it to rid
atoi() is possible, saving 9t 4d 1i
get rid of the 'mksh -T' functionality (chvt) if MKSH_SMALL
848 text 12 data 3 imports
more cleanup; incidentally, replacing libc function with syscall maybe speedup
9t 4d 1i
simplify. and, a few byte compares are cheaper than a structure
copy and a structure compare
gain: 103t 4d 1i
loss: had to move some code even though no diff (cvs issue)