Shut down kernels in parallel

When stopping the notebook server, it currently sends a shutdown request
to each kernel and then waits for the process to finish. This can be slow if
you have several kernels running. This makes it issues all the shutdown
requests before waiting on the processes, so shutdown happens in
parallel.

KernelManager (and MultiKernelManager) gain three new public API methods
to allow this:

* request_shutdown (promoted from a private method)
* wait_shutdown (refactored out of shutdown_kernel)
* cleanup (refactored out of shutdown_kernel)
Simplify KernelManager.cleanup()
Expose keyword arguments of KernelManager methods on MultiKernelManager
Rename wait_shutdown to finish_shutdown
When a preset is activated fire "preset_activated" event.
On "preset_activated" event, update the value of the maintoolbar select element that lists celltoolbar presets.
When a preset is registered after notebook is loaded, active it if needed.
Make sure that celltoolbars are hidden
when a notebook without "celltoolbar" entry in metadata is loaded.
update CodeMirror to 3.24

to be backported to 2.1
fix typo in v2 convert

resulted in NameError on orig_version because arg name is from_version
remove Firefox-specific CSS workaround

The bug being worked around appears to be fixed either in CodeMirror or Firefox (tested with FF 29).

Importantly, the workaround appears to *introduce* incorrect behavior

closes #5192
closes #5364
Pass Windows interrupt event to kernels as an environment variable

This allows third party kernels to use our interrupt mechanism on
Windows.

Closes gh-5840
Remove obsolete Windows workarounds, per @minrk's testing
Merge pull request #5764 from takluyver/parallel-kernel-shutdown

Shut down kernels in parallel
Merge pull request #5835 from minrk/v2-typo

fix typo in v2 convert
Merge pull request #5797 from minrk/cm-3.24

update CodeMirror to 3.24
Remove blank lines from <pre> blocks in nbconvert
Merge pull request #5856 from notsimon/master

Remove blank lines from <pre> blocks in nbconvert
Merge pull request #5845 from takluyver/windows-interrupt-envvar

Pass Windows interrupt event to kernels as an environment variable
Merge pull request #5843 from minrk/ff-css

remove Firefox-specific CSS workaround
add ownership to AsyncResult objects

An AsyncResult with owner=True will pop results and metadata, instead of get.
This should result is reduced memory growth on the Client.

AsyncResults created by apply, get_result, etc. have owner=True,
so this should help most cases.
update displaypub.publish signature in AsyncResult