Test the ``Singleton`` class for proper behavior: should allow
only one instance to be created per class, but different classes
derived from ``Singleton`` can have separate instances.

    >>> from plib.stdlib.classtools import Singleton
    >>> s1 = Singleton()
    >>> s2 = Singleton()
    >>> s1 is s2
    True
    >>> class A(Singleton):
    ...     pass
    ... 
    >>> class B(Singleton):
    ...     pass
    ... 
    >>> a = A()
    >>> b = B()
    >>> a is s1
    False
    >>> b is s1
    False
    >>> a is b
    False
    >>> aa = A()
    >>> bb = B()
    >>> a is aa
    True
    >>> b is bb
    True

Test to make sure that the ``_init`` method is only called when
the instance is first constructed; later calls to the class
call only ``__init__``, not ``_init``.

    >>> class C(Singleton):
    ...     def _init(self):
    ...         print("_init called.")
    ...     def __init__(self):
    ...         print("__init__ called.")
    ... 
    >>> c1 = C()
    _init called.
    __init__ called.
    >>> c2 = C()
    __init__ called.
    >>> c1 is c2
    True
