Git hooks use bash specific syntax
Add a new context manager, Widget.hold_sync(), which holds any syncing until the manager exits

Sometimes for consistency or efficiency purposes, it makes sense to update
a group of properties all at once.  This context manager makes this possible.

We also fix a bug where send_state was not passing the key on to get_state.
Before syncing a widget's state, check first for the property lock, then for the widget state lock
unidirectional link of traitlets
wrong callback
renaming unilink to directional_link and adding dlink alias
adding a simple test for directional_link
more minor fixes to release scripts

- allow `tools/release` to be run from top-level
- upload wheels
Merge pull request #6133 from SylvainCorlay/unilink

Unidirectional link of traitlets
Merge pull request #6281 from minrk/further-fix-release

more minor fixes to release scripts
Catch SyntaxError from tokenizing for traceback

I don't think there's an easy way to test this, but I've verified the
fix by hand.

Closes gh-6300
add missing NBFormatError import in nbformat.reader.reads

opening unreadable notebook format failed with 'NameError: NBFormatError'
instead of the expected error.
display JSON error message on failed notebook load

if there is one (escaped for safety).
add utils.ajax_error_msg for extracting the JSON error message.
Merge pull request #6303 from minrk/nbformat-error

Fix error message when failing to load a notebook
Merge pull request #6301 from takluyver/i6300

Catch SyntaxError from tokenizing for traceback
Merge pull request #6289 from takluyver/git-hooks-bash

Use bash shebang line for git hooks
Merge pull request #6296 from jasongrout/sync-hold

Add a new context manager, Widget.hold_sync(), which holds any syncing until the manager exits
use write_error instead of get_error_html

get_error_html is removed in tornado 4.0
Merge pull request #6318 from minrk/tornado-4-error-html

use write_error instead of get_error_html