Add notion of action that differs from  shortcuts.

This decouple the notion of shortcut from the notion of executed "action"
This allow the shortcuts manager to be purely describe as data, and the
same action to be later refered to either from the shortcut, from a toolbar
button or a menu.

This also implement a more complete keyboard shortcut handler which is
able ton interpete sequences like `Cmd-X,Meta-v` By storing the
shortcuts in a tree.
remove debug
add test warning shadow
Public server firewall configuration

Added section on firewall configuration.  This should prevent users (like me) from struggling
to figure out why their servers aren't executing code.
Fixed port range

Actual port range for ZMQ is 49152 through 65535.  Also fixed some grammar/spelling issues.
nbconvert --to script

Use extension and mime type from NB metadata
'Download as' script
Update docs about kernel_info_reply
Fix asyncy nbconvert to download
Refactor the do_diff and manual child view lists into a separate ViewList object
allow unrecognized outputs and cell types in notebooks from the future

in nbformat schema / validation
Handle unrecognized outputs and cells from the future
Make error messages more consistent
Make state_change initialization more conventional
Missing semicolon
Make a copy of the input list so that changes to the children list don't automagically change our reference list
handle various permission failures

- turn various EPERM, EACCES errors into 403
- add `writable` bool field to contents models
- if a notebook is not `writable`, save is disabled
s/open_w/atomic_writing/
Merge pull request #6903 from minrk/writable

handle various permission failures
tweak documentation for viewlists