rewritten string building state machine using a common MicroStateMachine base class

 * uses label pointers instead of state-enum and switch case
   (both faster and shorter to write)
 * common interface for all micro state machines: makes them reusable
micro state machine for Q-Register specifications: allow long Q-Reg names

syntax is as follows: ["."]("#" CHR1 CHR2 | "{" STRING_BUILDING "}" | CHR1)
 * the short one/two char names are turned upper case, while no
   case folding is performed on verbose names
undo tokens for changing an object pointer

will care about the eventual deletion of the object
use Q-Register micro state machine when parsing Q-Reg spec in string-building commands

 * allows referring to long Q-Register names in string arguments
 * currently, long names specified this way use their own string building char parsing
   (I'm unsure whether this makes any sense)
option for q-reg spec state machine to allocate (insert) new q-registers

 * enabled for all modifying Q-Reg commands
undo q-register table initializations (insertions) on rubout
updated TODO: long-q-reg names implemented