Clearing the workspace

When a new session is connected there should be empty home workspace and no loaded custom nodes;
It's important the clearing is finished before processing RecordableCommands. So there was added synchronization mechanism - executing commands wait for finishing of clearing
Hi @marimano, the following code can be improved by doing these:

1. ```dynamoViewModel.Model``` is used multiple times, it'd be nice if you assigned it to ```dynamoModel``` and use it multiple times.
2. Same way ```dynamoViewModel.SearchViewModel.Model``` can be ```searchModel```.
3. ```workspaceView``` is a wrong name, it should be ```workspaceViewModel```.
4. Instead of using ```WorkspaceViewModel```, since we ultimately are interested in removing ```WorkspaceModel```, why don't we go through ```dynamoModel.Workspaces``` and do the ```FirstOrDefault```?