JobQueue zmq::socket is now thread scoped to correct termination order bugs.

Basically we need to the socket lifespan to be the same as the thread
that is doing the polling so that zmq doesn't improperly call recv internally
on a thread will it is being cleaned up.

More information on why this is done can be found at:
  http://zeromq.org/whitepapers:0mq-termination#toc3
MessageRouters zmq::socket are now thread scoped.

Basically we need to the socket lifespan to be the same as the thread
that is doing the polling so that zmq doesn't improperly call recv internally
on a thread will it is being cleaned up.

More information on why this is done can be found at:
  http://zeromq.org/whitepapers:0mq-termination#toc3

This also fixes the issue report in #128.
Update all the integration tests to not share a context.

Now that we don't need to share context's don't.
Add an integration test to verify issue #128 never returns.
Correct JobQueue failures on linux.
Merge pull request #131 from robertmaynard/zmq_context_cleanup

Resolves Issue #128 by fixing zmq::socket destruction order in workers