Notebook Actions second part.

On top of #6668 

Start using actions for toolbar, and other stuff.

In particular, toolbar can be "just" described as a `[list of groups]`. and each group is a `[list of action name]`.
technically a group is either a list of action name or a specific value for something that cannot be done as an action (typically dropdown to select cell type), but that's only for private use. 

Also in this PR:
  - Render shortcut nicely on mac with unicode value of Cmd, Esc, Up Down, ... etc. 
  - Do not use dom ('#cell_type') to link things together, so technically you can have many toolbar with many dropdown that allow to select cell type, and everything works.
  - F&§$* Javascript (IIFE in loops)
  - Use relative import in require.

 
Yes, `<custom_action>` are supposed to be private, and I didn't wanted to change the API for external customer. Moreover these custom action are currently needing this, so they are attached to prototype. I could `$.proxy` but then it seem overkill.

It cannot be moved into the global action as this is not real action, as it is statefull. It is made to insert dropdown to change cells type and celltoolbar.