Removed a last checkSanity() call.
Better debug logging (w/o newlines), more debug logging.
Some important bug fixes

Manual tester: No string resizing after recvfrom.
Broker: Forgot to send persistence command on LOGOUT.
Variadic debug_log; picked manual-tester fix from master
Some more minor debug_log improvements
Dirty thread support (no locks, just parallel)

Works fine so far: different threads receive/send messages (not only
one), errors are caught and logged.
Requirements updated: Some more boost libraries.
Synchronization code (infrastructure)
Introduced locking for files (urandom, stderr)
The actual broker uses locks now.

We use a mix of exclusive and shared locks: Read access needs only a
shared lock, so many threads may read concurrently. However, write
accesses are protected by exclusive locks; before a thread can write to
a map, it has to wait for a) all readers or b) another writer before it
can continue.
Merge branch 'mesg-broker-threaded' into mesg-broker
Implemented user information cache.

The message broker doesn't need to query the persistence layer for every
message and every UONLQ anymore.
Switched to edge-triggered epoll (because of multi-threading)

cf.
http://stackoverflow.com/questions/9162712/what-is-the-purpose-of-epolls-edge-triggered-option
Merge branch 'mesg-broker-cache' into mesg-broker

Should be alpha-ready by now.
Fixed wrong lock in onWebAppUONLQ; cache entry after UONLQ
Reordered class/struct fields for better memory efficiency
Non-blocking sockets → safe epoll edge-trigger.

Also some minor attempts to enhance efficiency by output arguments etc.
Some more incorrect locks fixed (shared_lock instead of unique_lock)
Broker2Broker protocol specification.
Experimental broker-to-broker implementation