DynamoEditBox enhancement work

#### Background
This commit is the work on enhancing "DynamoEditBox" (formerly "dynEditBox") to properly support undo recording. Previously its "Text" property can be set anywhere that has access to it, which naturally does not work well with undo recording (it cannot differentiate between initial creation vs. actual user editing).

#### Affected components
These node types directly/indirectly make use of "DynamoEditBox" for their text editing functionality: StringInput, DoubleInput, AngleInput, DoubleSliderInput, Formula, Output, Symbol, Sublists, and LengthInput. I have placed a note to test these node types in defect:

http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-164

#### Unit Tests
This is another UI-only change for which no unit test cases can be easily written. However, due to its command-nature, sensible test cases can be written with the help of command framework in the near future.