BUG: Fixed crash on scene close

Node pointers in the scene model can become invalid when the scene is closed.
If the node is looked up by node ID and pointer is retrieved from the scene then the retrieved pointer will always be valid.
The d->MRMLScene->GetNodeByID() lookup takes some extra time, but it is not very slow, because it just finds a string in a std::map<string,...>.