trigger `Kernel.status_started` after websockets open

This leads to a more logical state for event watchers to expect.
remove special handling of speaker notes
clarify `reveal-prefix` alias name
update nbconvert docs about reveal.js
add proxying tornado server in Serve post-processor
use local reveal.js url prefix by default

CDN redirect is handled by the Serve post-processor if necessary
ESC should be handled by CM if tooltip is not on
Have remove_and_cancel_tooltip() return a boolean
converted multi-context with-statements to nested (2.6 compatibility)
moved DummyMod to proper namespace to enable pickling
Revert "converted multi-context with-statements to nested (2.6 compatibility)"

This reverts commit 311acdf45e9d164ac3dd3eb72b913dfc7d7e4314.
always fire LOCAL_IPS.extend(PUBLIC_IPS)

was in `else`, but should have been `finally` so it aways runs.


Symptom was warnings in parallel.client about `127.0.1.1` not being this machine.
update version-check message in setup.py and IPython.__init__

clearer message that IPython no longer supports 2.6.
update Python version classifiers:

- drop specific 3.x
- drop 2.6
update README with dropped 2.6 and 3.2 support

also clarify the checkout steps in development install
Use Instance trait for user_ns instead of Dict.

Instance(dict) is None by default, unlike Dict().
Add a test for kernel started without user_ns kwarg.

user_module should not be an instance of DummyMod
Merge pull request #4189 from minrk/localinterfaces-finally

always fire LOCAL_IPS.extend(PUBLIC_IPS)
Merge pull request #4188 from takluyver/dict-traitlet-none

Allow user_ns trait to be None

The Dict trait converts None to an empty dict, which caused the application to pass in a user_ns to the shell, which then behaves slightly differently, creating a DummyMod instance.
1.1 backport stats