Make MessageLoop warn when busy polling (RTBKIT-567)
allow ZmqEventSource to work with needsPoll = false (RTBKIT-567)

Instead, it asks for a fd from zmq_getsockopt() and uses that in conjunction with a cached readiness status to know when to wake up.
Epoller processOne() loop moved inline and exits on shutdown (RTBKIT-567)

Trivial refactoring, added some more informative output for when -1 is returned, and stop ignoring return code from handleEvents() which allows us to shutdown properly
Added MessageLoop blocking mode (RTBKIT-567)

MessageLoop class's main event loop refactored to use the Epoller's blocking functionality when needsPoll is false.  Other changes were made to allow the loop to exit immediately on shutdown.  There is still an unexplained error in the Epoller::processOne() method not being equivalent to the hard polling version; for the moment that is disabled while investigation happens.  RTBkit testsuite passes.
rebased and merged RTBKIT-567 branch from old repo
Added zmq message loop test (RTBKIT-567)
Return an enum from Epoller handleEvents function (RTBKIT-567)
Use std::thread not boost::thread for MessageLoop (RTBKIT-567)
Typo fix (TRIVIAL)
Use logging facility for MessageLoop (RTBKIT-567)
Allow immediate MessageLoop shutdown even when sleeping (RTBKIT-567)
cleaned up removed code (TRIVIAL)
Missing updateEvents() in ZmqEventSource constructor (RTBKIT-567)
Allow epoller to be used even with no sources (RTBKIT-567)
Finish implementing non-busy message loop (RTBKIT-567)
Merge branch 'RTBKIT-567_zeromq_block_not_busy_poll_rebased'