Enhanced node editing functionality to use Command Framework

Background
==========

* This pull request is meant to extend "node editing" functionality into Command Framework. It corresponds to the following task:

 * [MAGN-449 Node value editing should be made recordable](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-449)

* The following changes are made:

 * Virtual method **ModelBase.UpdateValueCore** is introduced (implemented by Sublists, DoubleInput, DoubleSliderInput,  StringInput, Formula, Output, Symbol, LengthInput classes)
 * Recordable command **UpdateModelValueCommand** is implemented
 * New property **RecordableCommand.IsInPlaybackMode** is introduced for a given recordable command to determine if it is in playback mode or record mode
 * **DynamoTextBox** now issues **UpdateModelValueCommand** instead of **BindingExpression.UpdateSource**

* Documentation has been [provided here](https://internal.autodesk360beta.com/portal/groups/2013081950126/item/DS46601QT150b7b805d1247355f6edafccb2)

Test scenarios
==============

* Test renaming a note (not node) with a dialog
* Test renaming a node's caption with a dialog
* Test editing a "Length" Revit node with dialog
* Value inputs should be tested in following node types:

 * Sublists
 * DoubleInput
 * DoubleSliderInput
 * StringInput
 * Formula
 * Output
 * Symbol
 * LengthInput (on Revit).

Unit testing
============

* The following new unit test cases are added:

 * TestCreateNoteCommand
 * TestCreateNoteCommand
 * TestSelectModelCommand
 * TestSelectInRegionCommand
 * TestDragSelectionCommand
 * TestMakeConnectionCommand
 * TestDeleteModelCommand
 * TestUndoRedoCommand
 * TestUpdateModelValueCommand
 * TestUpdateNodeContents
 * TestUpdateNodeCaptions
 * TestVerifyRuntimeValues