allow unrecognized outputs and cell types in notebooks from the future

in nbformat schema / validation
Handle unrecognized outputs and cells from the future
fix loading of language name from kernel_info

language is langinfo.name, not langinfo.language

fixes highlighting for IJulia kernels
move language name, version into language_info

in kernel_info_reply

adds adaptation of language info to msgspec adapter
only check for formatters on instances

use inspect.isclass to disallow unbound methods,
not type checking on the method itself
add language_info to nbformat doc and spec
update kernel_info_reply test
validate codemirror_mode
First stab at ConfigManager class
Add default for profile_dir

So ConfigManager is useful outside an IPython application
Remove profile_dir from handler class
Always depend on gnureadline if setupext.check_for_readline() fails

The inconsistency (asymmetry) of unconditionally adding gnureadline as a
dependency of binary distributions can cause issues like reported at
https://github.com/paylogic/pip-accel/issues/34
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.
Add docstring documentation for widget_float
Preserve nbformat_minor from the future

warn on click of unrecognized elements, rather than on load.
close pager on escape on command mode
Added changes to dosctring documentation in widget_float.py (previous docstring written by me).
Added docstring documentation in widget_bool.py.
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.