`ipython console` requests the history from ZMQ-based kernels

This PR sets the history_manager to ZMQHistoryManager to request the history from the kernel over ZMQ. Tested on metakernel-based kernels, and with `ipython console` default ipython kernel.
Oh, I see, shell.atexit_operations() calls shell.reset(), which calls history_manager.reset(). Just make it a no-op, and then I think the class-level attributes can go too.