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
Removed "DragCanvas.HasParentType" method
Removed "DragCanvas.ElementClicked" method as it is obsolete
1. Folded node selection logic in DragCanvas.OnMouseLeftButtonDown into StateMachine
2. Introduced StateMachine.State.DragSetup state (the one before it goes into NodeReposition
3. StateMachine now allows single/multiple node selection deselection
Removed "DragCanvas.MyHitTestResult" method since it is not used
Implemented "WorkspaceViewModel.DraggedNode" class for dragging with StateMachine
Folded node dragging operation (out of DragCanvas) into StateMachine
Merged undo recording for node movements back into StateMachine
1. Updated DragCanvas.cs changes so to minimize the diff when compared to master
2. Implemented StateMachine.HandlePortClicked method to deal with connectors
3. Removed "ActiveConnector" and "IsConnecting" from "WorkspaceViewModel" (moved into StateMachine)
Merge branch 'master' into DragCanvasRework

Conflicts:
	src/DynamoCore/UI/Views/dynWorkspaceView.xaml.cs
	src/DynamoCore/ViewModels/WorkspaceViewModel.cs
Reverted unintentional changes in dynAnalysis, dynKinect and dynLeapMotion files
Reverted unintentional changes in dynAnalysis.cs
Reverted unintentional changes in dynAnalysis.cs
1. Commented out "OffsetData" and relevant codes in "DragCanvas"
2. Fixed a crash during undo operation of a reconnection action
3. Fixed an issue where focus was not returned to search box by clicking in the canvas
Added TODO comment around dead codes so they get removed later
Merge branch 'master' into DragCanvasRework