A simple implementation of Signals and Slots for writing more flexible callbacks
Similar to Boost::Signals and a handy algorithm when writing event driven programs