The client class doesn't need anymore to be a shared_ptr.
Simplify the interface of the event class, mpl::set is now used internally only. Enum events are not allowed anymore, there are not a good design choice (extensibility).
Update event documentation.