Save-upload functionality for NWK

It should be implemented in the different from browser version way. Flood in NWK should have the same kind of behavior that is in DynamoSandbox:
1) Open - Open a file from the local file system. Dynamo will need to know about the location on disk in order to support 2. 
2) Save - Save the current workspace to the local file system - this is only relevant in node-webkit mode. If the file already has a filename associated with the local file system, overwrite that file.
3) Save As.. - Prompt the user to provide a new filename to be saved to the local file system.

This PR contains changes from https://github.com/Benglin/Dynamo/pull/152. So https://github.com/Benglin/Dynamo/pull/152 should be merged first
```Guid.Parse``` may throw an exception if the ```guidStr``` is not valid form. Let's rewrite the above as:

```csharp
Guid guidValue;
if (!Guid.TryParse(guidStr, out guidValue))
    return dynamoModel.HomeSpace;
else
{
    var defs = dynamoModel.CustomNodeManager.GetLoadedDefinitions();

    // Bla bla bla...
}
```