Expose kernel_info method on inprocess kernel client

Closes gh-5031
Clear timeout in multi-press keyboard shortcuts.
Delete old timeout.
Removed #4986
Revert #3552
New 'flex' support

http://dev.w3.org/csswg/css-flexbox/
https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes
fab css
Add kernel_info method to InProcessShellChannel
Convert tabs to spaces
Adding interact.py.
Adding Interact and Lorenz examples.
Updating interact to new APIs.
Updating interact to work with latest state of widgets.
Adding .widget to function.
Get widgets from function annotations and default arguments.

Also, preserve the order of function parameters from the signature where
possible.

This uses a backport of the Python 3.3 signature machinery that @minrk
found and improved.
Renaming interact.py->interaction.py to improve imports.
Fixing interact imports.
Utter interact insanity.

This involves a bunch of really complicated logic to handle the
different ways that function parameters can be processed in Python.
Most importantly, this includes support for *args in interact.
Adding decorator forms of interact. Yeah!
Adding const pseudo-widget for fixing arguments to interact.