BUG: Fix unit crash after the scene is closed

What happened:
When closing the scene, all the nodes are reset. This includes of course
the selection node. Although the reference roles were still valid, there
were no node to point to. It meant that the next time something tried to
access the units (in our case through GetUnits(), the freshly reset
 selection node couldn't find any and was crashing.

Solving this:
First, the selection node should maintain the reference on the units it
observes. This is done by reimplementing the Reset() function. The
references are saved before reset and re-added after.
Secondly, the unit node needs to be imprevious to the Reset() as well since
we don't want the current units to be equal to the unit's constructor.

Note:
In the Reset() of the vtkMRMLSelectionNode(), we set only the reference on
the unit node instead of using SetUnitNodeID(). This is because the unit
node being singleton, they have NOT been removed (they kept their
observer). Thus, it is redundant to call a SetAndObserver...() on the
unit node.

See Issue #3152