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
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 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
Add breakpoint handling magics
Adding bprm command to remove breakpoints
Convert lineno to int

Make sure linenumber is an int in IPyBreakPoint.
Also added docstrings to magic functions.
Adding regex breakpoints