Adding Link widget
Adding directional link widget
Fix whitespace
Updated example notebook
Load link widget javascript
Load the link models
on("destroy",...) -> once("destroy",...) so we don't keep a reference to it, preventing gc

Thanks to Sylvain Corlay for the suggestion.
only check for formatters on instances

use inspect.isclass to disallow unbound methods,
not type checking on the method itself
define kernelpath for clientside notebook manager
return API path instead of filesystem
Move js donc into function themselves.

Then it is possible in the browser js console to get the documentation
interactively.
Print exception instead of "KeyboardInterrupt"

Whenever a KeyboardInterrupt exception occurs in the shell, we should
print the actual exception instead of the string "KeyboardInterrupt".
This is needed to support exceptions inherited from KeyboardInterrupt.
Fix test_get_exception_only() for Python 3
Use sys.path to make filename in traceback absolute
remove _valid_formatter

check in _safe_get_formatter_method

- reject classes
- allow any callable...
- ...except on objects that lazily produce callables at any attribute
gh-7053: check for OSError during rehashx()
Clean up get_kernel_path logic
Adapt headers to using Content Security Policy
Document Content-Security-Policy changes
Fix bug in example, describe CSP more