Allow caller of MultiKernelManager.start_kernel to pass kernel_id.
General cleanup of kernelmanger.MultiKernelManager.
Removing return value of restart_kernel.

The kernel_id is *always* the same under a restart and there
is no need to return it. The restart handler does pass
the original kernel_id back to the browser as it currently uses it.
Creating application.config attribute.

This creates less coupling between the handlers and the outer
IPython application.
Refactoring kernel_died method to make subclass friendly.
Adding tested ipc support to MultiKernelManager.
Fixing bug in connection file cleanup.

ipc files were not always being removed.
Adding calls to shell_channel.stop() to shutdown.

But this hangs the test suite for IPython.frontend.html.notebook.
Fixing bug in cleanup of ipc files and adding new to shutdown.

* ipc files were not being cleanup on a restart.
* shutdown has a now argument that will call kill directly.
Cleanup naming and organization of channels.

* Change remaining use of "sub" to "iopub".
* Use consistent naming of channel classes across zmq, inprocess
  and qt.
* Move BlockingChannelMixin to zmq.blockingkernelmanager.
Creating an ABC for kernel managers and channels.
Make InProcessKernelManager a Configurable.
Fixing missing metaclass in KernelManagerABC.
Cleaning up MultiKernelManager test and adding linger=0 to shell.

We are finding that the tests for MultiKernelManager hang because
linger default to oo in the shell channel. By setting it to 0,
the tests pass fine. Last night, we thought it was particular to
the ipc transport, but now the hang occurs for any transport.
Renaming test_kernelsession to test_kernelmanager.
Adding test for basic kernel manager.
Docstring cleanup for kernelmanagers and channels.

We have decided to put the docstrings on the base implementations
in IPython.zmq.kernelmanager.  The ABCs in
IPython.zmq.kernelmanager.abc and implementation in
IPython.inprocess.kernelmanager point to this location.
More kernelmanager docstring cleanup.
Make KernelManager.kill_kernel private.

* kill_kernel -> _kill_kernel.
* Removed it from the ABC and implementations where approp.
Fixing bug in kernelmanager tests that was causing tests to hang.

When calling restart and the interrupt quickly, the test suite
was hanging.  A simple time.sleep(1) fixes the problem.