extract time/now
split out an impl namespace
simplify event-relay
minor cleanup
flatten message-emitter map into signal map
move event-relay stuff to impl namespace