Improve the bindings handling for the effects

The effects declare the bindings they need and the shell then
actually binds them with keys (in future) provided by the user.