fixed symbol lists: sort order must correspond with search order (determined by comparision function)

 * lists were sorted lexicographically (like strcmp()), but searched caseless (like strcasecmp())
 * lists are now sorted with strcasecmp()-like comparision
 * caselessness is thus a property of the SymbolList
 * use new language features in symbols-extract.tes
cleaned up SymbolList class: make attributes private

 * they were logically private but still declared public so that
   initializer constructor functions could access them.
 * instead, now use friend classes
 * has the side effect that initializing priority can be declared
   using GCC's init_priority attribute which works with earlier
   compilers than the constructor (with priority) attribute
moved QuickSort macros from symbols-extract script into own string.tes macro library

 * therefore for bootstrapping to work, the SCITECOPATH is always set explicitly