Implemented UpdateModelPropertyCommand class for use with DynamoViewModel.UpdateModelPropertyImpl
Renamed "UpdateModelPropertyCommand" class to "UpdateModelValueCommand" to avoid confusion.
Merge branch 'master' into NodeEditCmd
Merge branch 'master' into NodeEditCmd
1. Renamed "DynamoViewModel.UpdateModelPropertyImpl" to "UpdateModelValueImpl"
2. Exposed "ModelBase.UpdateValue" and "UpdateValueCore" methods for use in "UpdateModelValueImpl"
Merge branch 'master' into NodeEditCmd

Conflicts:
	src/DynamoCore/Models/ModelBase.cs
1. Implemented WorkspaceModel.UpdateModelValue method to perform model update and recording
2. Redirected DynamoViewModel.UpdateModelValueImpl to WorkspaceModel.UpdateModelValue
3. Removed DynamoTextBox.PreUpdate method since undo recording is now done in WorkspaceModel
Merge branch 'master' into NodeEditCmd
Merge branch 'master' into NodeEditCmd
Enabled "Binding.NotifyOnTargetUpdated" so that DynamoTextBox gets notified when its content is about to be committed
Added "InternalsVisibleTo" attribute so that internals are visible to "DynamoCoreUITests.dll"
Added "TestCreateNodeCommand" and "DuplicateAndCompare<CmdType>" methods into "RecordableTests"
Added "RecordableCommand.IsInPlaybackMode" read-only property (only set to true for playback)
Updated "TestCreateNodeCommand" test case to test "IsInPlaybackMode" property
1. Implemented "OnTargetUpdated" to generate "DynCmd.UpdateModelValueCommand" command for recording
2. Restored "DynamoTextBox.PreUpdateModel" method for use in "UpdateDataSource" method
Reverted changes added to use "Binding.NotifyOnTargetUpdated"
Implemented "UpdateValueCore" for: Sublists, DoubleInput, DoubleSliderInput, StringInput, Formula, Output, Symbol, LengthInput.
Merge branch 'PlaybackSpeed' into NodeEditCmd
Added 9 new test cases to test various recordable commands
Variable input python node, tested saving and loading with multiple inputs.  Could possibly replace NodewithOneInput version. Modeled on Combine node.