Make comm manager (mostly) independent of InteractiveShell

This makes it possible to use comms from wrapper kernels, without
instantiating the full IPython shell machinery.

The one remaining place where we need a reference to shell is to fire
pre_execute and post_execute hooks (which are needed to get mpl figures
right). This is a pure IPythonism, that it should be safe to ignore if
shell is not set.
Make comm_manager a property of kernel, not shell
Safeguard against comm instantiation with both session and kernel (corner case)
remove on_first_message authentication

in ZMQStreams. No need for weird, special first message.

- use regular cookie auth
- use url param for session id
Update to codemirror 4

Update to codemirror 4.6 and update most notebook to work wiht it
this include keyevent that where triggerd twice and the re-writing of
ipython-gfm anf ipython mode to work with require.
update to components master
rework keyboard management to avoit completer and up/down bugs
protect agains undefined
handle somehting selected and multiple cursors and 4 tabs show content in pager
fix this.editor reference
use require to load CodeMirror modes

CM's loadmode addon only works if you *don't* load CodeMirror itself with require.
remove unused cm_loadmode
add comment about codemirror.modeURL
cleanup whitespace
cleanup style fixed in separate PR and few other things
remove empty example notebook

looks like it was committed by mistake
Merge pull request #6629 from minrk/wscookie

remove on_first_message authentication
use default kernel name in kernels service

matches sessions API
Merge pull request #6540 from takluyver/comms-mgr-needs-no-shell

Make comm manager (mostly) independent of InteractiveShell
Merge pull request #6221 from Carreau/cm4

Switch to CodeMirror 4.6.0