Use the more powerful signatures module to display function argument signatures. In particular this works better for functions wrapped with functools.wraps (at least on Python >= 3.4)
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
Use native map when possible

Implemented on all modern browser.

There is a small behavior difference between $.map and Array.prototype.map
but we don't rely on it.

(jQuery flatten arrays and filters null-like)
create new terminals with POST /api/terminals

instead of GET terminals/new

to be consistent with creating new notebooks.

We had to stop using GET notebooks/new
because browsers would create new notebooks when making preview thumbnails for commonly visited pages, etc.
I assume the same issue would apply to terminals
Make a window immediately, and set its location on response

Avoids the need for async:false
Close new window on error creating terminal
Fix bug where cell toolbars are not redrawn,
when cell metadata is changed.
Add REST API for retrieving, storing and updating config
Fix docstring, validate JSON on PUT
Apply JSON config updates recursively
Fix writing JSON on Python 2
Return updated config from PATCH requests
Update pygments monkeypatch for compatibility with Pygments 2.0

Closes gh-6877
Add some explanation about the pygments monkeypatch
allow js tests to run with tornado 4 and phantomjs
forward-port draft76 websockets

from tornado-3.2.2

only enabled during testing with phantomjs
don't pin tornado<4 on travis
bump minimum tornado version to 4.0

remove various websocket workaround for tornado 3