ENH: Add qSlicerSingletonViewFactory
The new view factory can be used by both C++ and Python classes to register any singleton QWidget by calling factory->setWidget(QWidget*) and factory->setTagName(std::string).
Since the widget is a singleton, the factory can only be used to add a single such view to a given layout.
Spun off from https://github.com/Slicer/Slicer/pull/1061