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
`CheckPath` does not tell a lot about what it does, I'd recommend renaming it to `IsValidDynamoFilePath`, make it `static` and reimplement to use `Path.GetExtension` API (you need to test the following code because I typed it with Notepad++):

`csharp
private static bool IsValidDynamoFilePath(string filePath)
{
    if (string.IsNullOrEmpty(filePath))
        return false;

    try
    {
        var extension = Path.GetExtension(filePath);
        switch(extension.ToLower())
        {
            case ".dyn":
            case ".dyf":
                return true;
        }

        return false;
    }
    catch(Exception)
    {
        return false;
    }
}
`