ENH: Add no throw exception specification for UnRegister methods

The LightObject::UnRegister method is used in destructors for
smart pointer objects. This method needs to have a no throw guarantee
for exception safety in descructors.

Since commit cf589ecb (Catch exception in DeleteEvent, 2014-05-07)
we try/catch(...) in Object::UnRegister so no exceptions can escape
from it.

The no throw exception clarifies, these methods behavior.

Create ITK_NOEXCEPT for noexecpt in C+11 and using legacy throw
otherwise.

STYLE: Renamed SP_ITK_NULLPTR to ITK_SP_NULLPTR for SmartPointer, and
undefined when no longer needed.

Change-Id: I0deea2138efdebfb7fee6bc40c4e99c235072e62
Merge topic 'ExceptionSafteySmartPointerDestructor'

06f8ef01 ENH: Add no throw exception specification for UnRegister methods