`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.
I don't think these do anything without the ABC meta class, and I guess that's not easily compatible with our HasTraits metaclass for the config system. Maybe leave out the abstractmethod and just have them `raise NotImplementedError`