Refactor ContentTypes format names to have a consistent style.

Change-Id: I6a0fcf84255fb2cfb4e4eecaeabdd33b628fac8c
Refactor ServerPorts to handle more than just tcp-ip connections.

We have a small amount of work to do in the future to properly support
inproc communication since we will need to be able to share a zmq context
between the connecting parts.

Change-Id: I98c62b1fc004ea46118b1b2bff5b9ecdb77aed14
Fix numerous parsing issues with creating non tcp-ip server connections.

Change-Id: I82b00dea8bf73e95b140509d25433e31c5af1912
Update the Client tests to try connecting using ipc.

Change-Id: Id3da013e305a63ad90e5570affc6a21159afe960
Correct a bug in the job requirements unit test.

Change-Id: I2ac5cac3a088bc980c8217e414274598a21228a2
Remove unneeded iostream includes.

Change-Id: I9a4edd62f9e5ec70a8693b7f5befb2d57b9968f1
Clean up minor typos in the client code.

Change-Id: I0a327ea13fa599e789d004c2ca6f9b990169c32b
Refactor the JobRequirements comparison operators to be easier to read.

Change-Id: I94a98dc57b5a5d9bf7206d5d86ee283c84a2298d
Make JobRequirementsSet be usable anywhere std::set is used.

Change-Id: Ia6ae4381a6a2d0e8039d8aea4324517c14c6fd04
Refactor JobSubmission to be easier to read and use.

Change-Id: Ie263e85846e1f6483debba493bd8044a666c2e3f
Update the server detail classes to understand job requirements.

This required a fairly exetensive change to all the detail classes. At the
same time I went ahead and gave each of them implementation files to improve
compilation performance.

The detail classes aren't exported on purpose as calling libraries/executables
should never see these internal details.

Change-Id: Ib994d153408b337f8e96544bab94627a20b6f787
Update the WorkerFactory to support job requirements.

Change-Id: I6d6818a697e02258c25f9de4177833ea1cddbdec
Finally teach server about job requirements.

Change-Id: I4bdfd005d3ebe69b2e15f931dbba6710aaffeb3d
Fix some issues in MessageRouter when getting a terminate worker message.

Also cleared up in the documentation what the validity of a MessageRouter is
when it receives a terminate worker message.

Change-Id: I53fa0a001d172dbe42881c2e5ef6ec7dbe618ab7
Cleanup JobQueue which has unneeded implementation details.

Change-Id: Id280505f0ac4c40ec086a00fa4253ead3c86f62b
Refactor worker::Job to understand proto::JobSubmission

Change-Id: I232a29f2e6957a89f8f8eee017f49209f6564d66
Correct a spelling mistake in worker.

Change-Id: Iad7b2015bf523253e243d1e436e6c63e78fd0c5b
Add tests for Workers detail classes.

Change-Id: I8dc21855e5e3ded3ce13d8175c0d1506c26d8b88