function key support (keys without printable representation) using keyboard macros

 * if enabled, when a function key is pressed it is looked up in Q-Registers ^F...
   e.g. HOME key corresponds to register ^FHOME
 * the string if available is inserted as if it was entered by key-presses
   (later it may be entered as a single input token which may be removed in a single rubout)
 * only NCurses currently, key names directly correspond to Curses key names
 * on Curses if function keys are enabled ESCAPE will be inserted after a delay
   (because function keys are transmitted via escape sequences).
   A function key macro may be used to define an alternative escape character
implemented command to query ASCII code of character (^^x)
fixed commandline replacements

ensure that undo tokens for first differing characters are actually
associated with this character instead of the next.
(resulted in strange behaviour on rubout and subsequent replacements)
made UndoStack::push_msg() inline
use preprocessor error if no interface has been selected

this is often because of a missing "config.h" include,
but puzzles me every time...
clean up SciTECO bootstrapping by building convenience library

 * pkg-config LIBS should be added to $LIBS so that link order is correct
clean up QRegister vs. Buffer redundancies using TECODocument class

 * also encapsulates data properly (previously there were many public
   attributes to avoid permission issues)
 * new class also cares about saving/and restoring scroll state.
   now, buffer/q-reg edits and temporary accesses do not reset
   the scroll state anymore.
clean up QRegisterTable::insert|initialize usage

 * distinction no longer useful since string part of register
   is now never pre-initialized
removed unused Red-Black tree abstractions

they didn't work and weren't really necessary either
updated TODO: Optimizations section
VPATH build fixes: SciTECO can now be built from a parallel source tree

...which is useful when crosscompiling for MinGW
Windows (MinGW) compatibility fixes: suspending impossible and environment initialization revised

 * g_get_environ() appears to be broken, at least in Wine and Win2k
fixed margin configuration with GTK+ interface

 * line-number style must be explicitly set, even after CLEARALLSTYLES
 * margin widhts are in pixels (except in Scinterm), so we must determine the
   pixels requiered by a number of digits (e.g. 5 digits)
fixed global object initialization order issue

 * Scintilla is now initialized from main() using Interface::main()
 * Scintilla initialization depends on initialization of objects in the
   global namespace (otherwise the Lexer catalogue may not be filled
   properly and lexing may not work). Lexer modules were initialized
   after SciTECO interface initialization
 * merged Scintilla initialization (Interface::main()) with interface
   option parsing
function key macro support for GTK+ interface

 * also revised the way in which unhandled keys are interpreted
   (use gdk_keyval_to_unicode() instead of deprecated GdkEventKey::string)
 * keep in sync with Curses key handling
resolved enter-key handling by introducing get_eol()
added some default function key macros