first draft of commandline-editing commands ({ and } as in VideoTECO)

 * simplified traditional commandline editing. no need to extend cmdline string one character
   at a time when inserting multiple. instead there's a marker (cmdline_pos) specifying the macro
   length to execute in a "step" and also the anchor for generating undo tokens
 * implementation does not yet work in macro calls
 * while editing the commandline, other buffers/registers may not be edited
   (need push-down-list and auxiliary q-register)
delegate commandline replacements ("}") to the cmdline macro level

allows commandline editing scripted by macros
use special Q-Register $ (<ESC>) to hold the replacement commandline

 * allows us to switch between buffers/registers when editing the
   commandline
reverse Execute::step() change: no need to pass parameters by reference

cmdline and cmdline_pos is no longer modified by code executed by step()
instead it is modified at the outermost macro level (commandline macro level)
updated TODO: implemented "{" and "}" commands
fixed ring.current/QRegisters::current corruption

occurs when rubbing out a switch from q-reg string or to q-reg string
updated TODO