split base_launch_kernel into make_kernel_cmd / launch_kernel
remove obsolete launch_kernel in ipkernel
allow custom kernel_cmd in KernelManager
allow KM._launch_kernel to be overridden in subclasses
s/make_kernel_cmd/make_ipkernel_cmd/
move IPython.lib.kernel to IPython.utils.kernel

where it always should have been.
move IPython.zmq.entry_point to IPython.utils.kernel
move utils.kernel (formerly entry_point and lib.kernel) to kernel.util
move kernelmanagerabc into IPython.kernel
split kernel.util into kernel.connect and kernel.launcher
test IPython.kernel
move IPKernelApp from zmq.ipkernel to zmq.kernelapp

- merged IPKernelApp into KernelApp, they are no longer separate classes
- embed_kernel moved to its own file
- ipkernel now only contains the Kernel class
- associated imports updated
never use Queue.get(timeout=None)

Queue.get(timeout=None) has stupid uninterruptible behavior,
so wait for a week instead.
move zmq.KernelManagers into IPython.kernel
move multikernelmanager to IPython.kernel
mv IPython.zmq to IPython.kernel.zmq
move IPython.inprocess to IPython.kernel.inprocess
define and test IPython.kernel public API
remove debug print statement
Merge pull request #2854 from minrk/2853b

Move kernel code into IPython.kernel

inprocess Kernel in kernel.inprocess
zmq Kernel in kernel.zmq
KernelManager stuff and ulities in top-level kernel

Main functional change: allow custom kernel Popen command

- [x] adds `KernelManager.kernel_cmd` configurable for launching a custom kernel
- [x] splits entry_point.base_launch_kernel into two steps: making the launch cmd and launching the subprocess
- [x] figure out where the entry_point functions belong, if it should be anywhere else
- [x] move IPython.zmq.kernelmanagerabc to IPython.kernel.kernelmanagerabc
- [x] move IPython.lib.kernel/IPython/zmq.entry_point to IPython.kernel.launcher / connect
- [x] move zmq.ipkernelapp.IPKernelApp to zmq.kernelapp  (I'll look at merging the classes, and see if it makes 
- [x] move IPython.zmq to IPython.kernel.zmq
- [x] move IPython.inprocess to IPython.kernel.inprocess
- [x] move embed_kernel from zmq.ipkernelapp to zmq.embed
- [x] move MultiKernelManager to IPython.kernel.multikernelmanager.
- [x] move IPython.zmq.blockingkernelmanager to IPython.kernel.blockingkernelmanager.
- [x] move IPython.zmq.kernelmanager to IPython.kernel.kernelmanager.
- [x] move IPython.ipkernel.Kernel to IPython.kernel.kernel.