Renamed "dynNodeButton" to "DynamoNodeButton"
1. Implemented "ModelEventCommand" recordable command
2. Introduced "DynamoViewModel.SendModelEventImpl" and "WorkspaceModel.SendModelEvent" methods
1. Implemented "WorkspaceModel.SendModelEvent" method to record model for undo and forward the call
2. Introduced "ModelBase.HandleModelEvent/HandleModelEventCore" methods
3. Updated "DynamoNodeButton" to send "DynCmd.ModelEventCommand" if it was created with an event name
1. Implemented "VariableInput.HandleModelEventCore" method
2. Implemented "VariableInputAndOutput.HandleModelEventCore" method
3. Removed the previous click delegates for add/remove buttons
Merged "UndoRedoRecorder.PopFromUndoGroup" method and test case from "ChocoButter" branch
Updated both HandleModelEventCore methods call "PopFromUndoGroup" for in-port removal
Added four test cases to verify ModelEventCommand (plus working with undo/redo)
Reduced "CommandIntervalInMs" from 500ms to 20ms to speed up test cases
Merge pull request #812 from Benglin/CmdFrmwkPlus

Implement new recordable command: ModelEventCommand