Fix up ZeroMQ socket diagram
Fix typo in protocol documentation
Use DEALER (instead of REQ) sockets for workers

This will allow for fibers to take work using the same
worker.
Factor out sending worker reply into its own function
Add Google Test unit testing framework

Also include a simple test for b_exception_string.