add GC traverse support to CallbackSet
merge safe utils into callback set module

only this module uses them
rename Dispatcher -> Emitter and cleanup

stub out the signal type
add the Emitter class to the build
add a type check static method to Emitter
add first cut at formal Signal object