[WIP] Refactor CallbackHandler

Here is a draft of the refactoring of the CallbackHandler.
It introduces no BC, but it deprecates the previous usage of `CallbackHandler::add*` methods.

Callbacks are now wrapped in a `Callback`, with a `CallbackSpecification` responsible of the execution, or not, of the callback on transition events.

`Callback` defines an `__invoke` method, and instances are directly registered as event listeners.