Add a benchmark for setting off many string-valued events.
Simplify event calling convention: pass objects.

Not references. Allows us to use std::move() when assigning
to the slot. Light benchmarking indicates no performance difference.
y