Edit window fix

Background
-----
This pull request fixes [a crash issue](https://github.com/DynamoDS/Dynamo/issues/2227) with node editing on ```Revit``` (see below for detailed test scenarios). The crash originated from the following statement on ```Revit```:

```cs
public EditWindow(bool updateSourceOnTextChange = false)
{
    // In unmanaged host scenarios like Revit, 'Application.Current' will be 'null'.
    this.Owner = WPF.FindUpVisualTree<DynamoView>(Application.Current.MainWindow);
}
```

The philosophy of the fix is that if ```EditWindow``` needs an instance of ```DynamoViewModel```, then it should always be supplied with one. And since ```EditWindow``` is on the view layer, it is completely fine for it to have a reference to ```DynamoViewModel```.

Test Scenarios
-----
The fix has been tested on the following scenarios:

1. Click ```Edit...``` on context menu of a ```Note```
2. Click ```Rename Node...``` on context menu of a ```Node```
3. Click ```Edit...``` on context menu of a ```String``` node
4. Click ```Edit...``` on ```Volume From String``` node
5. Click ```Edit...``` on ```Phython``` node

Notes for Reviewers
-----
Hi @sharadkjaiswal, @pboyer, please have a look. I have not been able to hit ```editWindowItem_Click``` method in ```String``` class (in ```BasicInteractive.cs```), if you know it that'll be great. All other callers for ```EditWindow``` have been tested working.