Add notion of action to keyboard manager.

Instead of directly registering a function on the keyboard manager that takes closure and event parameters, this also also to register a `string`, that map to an `action`. Each action is a dict that comprise the `help`, `help_index`, and a `handler` as before, but handler take one more parameter. And this will allow to also associate a icon (font-awesome) with the action. In the end custom keymap will just be json-able dict, so easier to configure. This would also allow to make a menu<-> action link (so why not a dynamic menu) and or show shortcut next to menu items.

Ping @ellisonbg 
Overall I think the action names should follow the names of the underlying methods. But perhaps we should check the names of the methods for consistency across the API. My approx recommendation for this one would be `execute_select_next`.