Speed up a test.
Add event<*>::operator+=(event<*>).

This is a natural operator-based way to spell distribute().
Also update the distributors to use rvalue references a bit
smarter.