Revert events::Broadcaster to non-blocking
Add events::Forwarder Interface
Add events::Blocking_forwarder
Add events::Detaching_forwarder
Merge branch 'multithreading_compatibility'