Logger: Make the logging facilities thread-safe.
MessageDirector: Make ChannelMap thread-safe.
net: Make NetworkClient thread-safe.
MessageDirector: Run in a dedicated routing thread.
StateServer: Track children by lookup table, rather than by counters.
Logger: Instead of using m_null, just return a no-op LockedLogOutput.
ClientAgent: Make client thread-safe.
ClientAgent: Make locking re-entrant.
StateServer: Fix typo that caused lots of grief.
Tests: Increase test_get_zones_objects robustness to catch regressions of the grief-causing typo bug.
MessageDirector: Behave in a thread-safe manner even if running non-threaded.
MessageDirector: Move thread-safety requirement to the MDUpstream.
MessageDirector: Fix -Wreorder warnings.
Tests: Add a few cases of sleep(0.1) to mitigate some race conditions exacerbated by the new threading model.
Tests: Add another sleep(0.1) to CA tests to mitigate another race condition.
Tests: Add option to easily run tests with and without threading.
Merge pull request #212 from Astron/enhancement/threading

Add threading to the Message Director (PHASE 1)
Docs: Update Event Logger protocol. We're now using MessagePack.
EventLogger: Implement MessagePack-to-JSON decoder for new protocol format.
EventSender: Allow sending of new-format events.