Utility to wrap signal usage in such a way that can be easily cleaned up to prevent objects hanging onto signal listeners and not being garbage collected.