According to the spec., valid syntax for merge field names is determined
by the merge source with a couple of minor exceptions. Current text backends
allow any printable characters, so the SubstitutionField parser now accepts
any printable characters.
- use "shared" pointer between Model and undo/redo instances
- adds missing initializers to Merge and Text classes
- adds checkpoints for mouse resize, barcode, and image reset.
- renames the position dialog checkpoint from Move -> Position to differentiate it from a mouse move.
- adds the Undo/Redo action descriptions to the menu items.
- adds unit tests for the Merge and Model change, and for ColorNode, RawText and TextNode.