Improve the NoValue to be a proper singleton
Improve the NoValue to be a proper singleton

The previous version of NoValue did not ensure uniqueness when
attempting to create a new instance or subclassing. This change ensures
that there is always one, and only one instance of NoValue, to maintain
as much consistency as possible. This also removes the need to
instantiate the class after its declaration.

Vgr255/logging