Refactored "GetDefinitionFromPath" and "OpenWorkspace" methods

### Background
These changes are made in preparation for further work in supporting Dynamo undo functionality. The changed code paths have been tested by loading DYN and DYF files previously saved, they can correctly be loaded. All the new test cases are also passing as of this submission. 

### This pull request consists of the following:
* Refactored "CustomNodeManager.GetDefinitionFromPath" method
* Refactored "DynamoModel.OpenWorkspace" method
* Implemented utility method "Dynamo.Nodes.Utilities.PreprocessTypeName"
* Implemented utility method "Dynamo.Nodes.Utilities.ResolveType"
* Added 15 new test cases for the new utility methods