Registers a function to the print hook queue to be called on hook.
    This method will also override the current sys.stdout variable with a new
    <StreamHooks> instance.  This will preserve any current sys.stdout 
    overrides while providing a hookable class for linking multiple methods to.
    
    :param      func | <callable>

def registerStdOut(func):
    """
    Registers a function to the print hook queue to be called on hook.
    This method will also override the current sys.stdout variable with a new
    <StreamHooks> instance.  This will preserve any current sys.stdout 
    overrides while providing a hookable class for linking multiple methods to.
    
    :param      func | <callable>
    """
    if not isinstance(sys.stdout, StreamHooks):
        sys.stdout = StreamHooks(sys.stdout)

    ref = weakref.ref(func)
    if ref not in sys.stdout.hooks:
        sys.stdout.hooks.append(ref)