enable bootstrapping by default

The SciTECO language changes often and the build system scripts are
adapted accordingly. If bootstrapping is disabled by default on systems
that already have SciTECO, building recent Git versions will fail often
due to macro errors. This is not easy to see and correct for users.

Also the build-time overhead for `sciteco-minimal` is minimal. The
--disable-bootstrap option is mostly useful when cross-compiling
SciTECO.
first working version of the one-view-per-buffer design

The user interface provides a Scintilla view abstraction and
every buffer is based on a view. All Q-Register strings use
a single dedicated view to save memory and initialization time
when using many string registers.

 * this means we can finally implement a working lexer configuration
   and it only has to be done once when the buffer is first added
   to the ring. It is unnecessary to magically restore the lexer
   styles upon rubout of EB (very hard to implement anyway). It
   is also not necessary to rerun the lexer configuration macro
   upon rubout which would be hard to reconcile with SciTECO's
   basic design since every side-effect should be attached to a
   character.
 * this means that opening buffers is slightly slower now
   because of the view initialization
 * on the other hand, macros with many string q-reg operations
   are faster now, since the document must no longer be changed
   on the buffer's view and restored later on.
 * also now we can make a difference between editing a document
   in a view and changing the current view, which reduces UI calls
 * the Document class has been retained as an abstraction about
   Scintilla documents, used by QRegister Strings.
   It had to be made virtual, so the view on which the document
   is created can be specified by a virtual function.
   There is no additional space overhead for Documents.
adapted sample teco.ini: margin setup must be done for every new document
avoid saving interface instance in UndoTokenInfoUpdate by implementing its run() method later in interface.h
rewritten View and Interface base classes using the Curiously Recurring Template Pattern.

 * without the one-view-per-buffer designs, many Scintilla send message (SSM)
   calls could be inlined
 * with the new design, this was no longer possible using the abstract
   base classes. the CRT pattern allows inlining again but introduces
   a strange level of code obscurity.
 * tests suggest that at high optimization levels, the one-view-per-buffer
   design and the CRT pattern reduces typical macro runtimes by 30%
   (e.g. for symbols-extract.tes).
 * only updated the NCurses UI for the time being
cleaned up Scintilla document "updating"

 * allowed me to remove some obscure global functions and methods like
   QRegister::update_string().
 * Document updating is concentrated in qregisters.cpp now
 * also fixes some bugs introduced earlier, like undo tokens being
   generated for non-undo registers (resulting in segfaults on rubout)
updated GTK user interface to API changes

it now works as good (or bad) as it did before.

 * fixed entering of the Escape character
simplified (User) Interface API

Both UIs have a current_view, so this field, the
ssm(), undo_ssm() and get_current_view() methods can be
refactored into the Interface base class
Make sure QRegister::view is properly initialized and cleaned up

 * it must be initialized after the UI (Interface::main), so I added
   a View::initialize() function
 * the old initialize() method was renamed to setup()
 * use a global instance of QRegister::view so it is guaranteed to
   be destroyed only after any QRegisters that could still need it
 * Document API adapted to work with ViewCurrent references
renamed the "NCurses" UI to "Curses" internally

 * does not change ./configure parameters
   You still have to specifiy --with-interface=ncurses for
   the Curses interface with default settings
 * the "NCurses" UI was used for many different Curses
   variants, so plain "Curses" is a better name.
updated sciteco(7): information on Scintilla views versus documents