Introduced RecordableCommand/CreateNodeCommand classes for documentation purposes
Merge branch 'master' into CommandFramework
1. Added more properties to CreateNodeCommand (X, Y, TransformCoordinates)
2. Partially implemented "WorkspaceModel.CreateNodeImpl" method
Merge branch 'master' into CommandFramework
Renamed "DynamoModel.CreateNode" as "CreateNodeInstance", and made it static.
Merge branch 'master' into CommandFramework

Conflicts:
	src/DynamoCore/Models/DynamoModel.cs
1. Updated various CoreTests/CoreDynTests to use the simplified "CreateNodeInternal" method
2. Redirected "NodeSearchElement.Execute" method to use "CreateNodeCommand"
3. Redirected "WorkspaceModel.CreateNodeImpl" to use "DynamoModel.CreateNodeInternal" method
Merge branch 'ModelEventArgs' into CommandFramework

Conflicts:
	src/DynamoCore/Models/DynamoModel.cs
1. Enhanced "DynamoSandbox.Program.Main" look for command file path specified in "args"
2. "DynamoController.MakeSandbox" method now takes an optional "command file path" argument
3. Introduced "DynamoController.CommandFilePath" to store path that is specified at start-up
Merge branch 'master' into CommandFramework
1. Moved "ExecuteCommand", "CreateNodeImpl" methods into DynamoViewModel (from WorkspaceModel)
2. Moved "CommandFilePath" property from WorkspaceModel into DynamoViewModel
3. Updated RecordableCommand to target DynamoViewModel instead of WorkspaceModel
Implemented the ability to save recorded command (CTRL+SHIFT+R)
1. Implemented command playback mechanism in DynamoViewModel (it works!)
2. Fixed a stack-overflow bug in RecordableCommand.Deserialize method
3. Automation related methods (e.g. BeginCommandPlayback) are moved into "DynamoCommands.cs"
Removed DynamoViewModel.CommandFilePath public property (not needed)
Merge branch 'master' into CommandFramework
Introduced a new StateMachine class for use in dynWorkspaceView
Merge branch 'master' into DragCanvasRework
1. Moved window selection logic into StateMachine
2. Made StateMachine a nested private class of WorkspaceView class
3. StateMachine now can access private members of WorkspaceView (being a nested class)
1. Completely folded selection box logic into StateMachine
2. Moved StateMachine from WorkspaceView to WorkspaceViewModel
3. Introduced "SelectionBoxUpdateArgs" and "SelectionEventHandler" for selection box update on view
Merge branch 'master' into DragCanvasRework