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)
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
add exponential falloff for reconnect

avoids constant reconnect attempts every 3 seconds forever

gives up after 6 tries (last timeout 64s)
[issue547] add emacs tmp files and .coverage files to gitignore
add sticky `Connection lost` notification

when reconnect process gives up
add Reconnect to kernel menu
[issue6883] catch keyboardinterrupt if generated during shell.system() calls
add events to ws_closed_error in kernel.js
allow js tests to run with tornado 4 and phantomjs