The slot's`slot` function callback needs to be a Higher-Order function
to manage correctly and consistently the signal parameters. Before this
change, the API was broken when the user wanted to pass `slot_params` to
a signal with parameters. (e.g., the `screen`
`"request::desktop_decoration"` signal passes the screen instance as a
parameter; when used in combination with `slot_params`, `slot_param`
overwrites the parameter.)
Bonus point: every slot is by default a pseudo constructor function that
has to return the actual signal callback. It makes it obvious to the
user how to use the `slot_params` to manage external dependencies and
configurations for the actual signal callback implementation.