Rework monitor_t.
Avoid a memcpy in monitor_t
Parse event structure as data for event handlers.
Rework monitor to support both new (3.3 and above) and old ways montior events work.
Add event called after we have connected up our paired socket, we are guaranteed to get monitor events after this point.

This is useful if you are spawning the monitor to a different thread and need to wait until monitor has started before opening the socket.
Implement monitor aborting.  This relies on having the new ZMQ_EVENT_MONITOR_STOPPED event.
Convert all tabs to spaces to match formatting style for rest of the file.
Merge pull request #22 from ricnewton/monitor_updates

Move monitoring functionality out of socket_t and into monitor_t