Update to version 0.2.1 since we are going to change wire proto.

Change-Id: I62759496fe2076067d290356db2d7165e36ff01f
No need for the combined type to be signed, we never have negative values.

Change-Id: I6c036749d9e32ab196be806fa044173252f8a9cb
Remove unneeded boost and zmq includes.

Change-Id: Id027ee6315f88b93447e1349dc02b5eee9aed8e7
Install these headers.

Change-Id: Ibb9d0a231284098371cc90c5fcf7ccd5ffdb3a59
Refactor the Job classes to be in client and worker directory.

Rather than each of the Job classes have methods that worked only
on the client or worker, we move them to being unique classes that
reside in the respective folder/namespace.

This allows us to easily extend each side of the api, and allows
a more targeted approach to make the client and worker api.

Also this should allow us in the future to create a better wire protocol
format.

Change-Id: I2ce21b8fa9b1ad4f0f1c8fc7191cf25ec6fa49dc
Update server internals to use the refactored Job* classes

Change-Id: Ic5a8ed3a7dea412d0a6959edccae1ebc79c11344
Update the Server class to handle the new Job refactoring.

Change-Id: I2b3d3be836b5d0b216726284b9418425db616632
Update all the examples to use the new refactoring.

Change-Id: Ia0a5eb1a75641e5143e477af9ea89e18eb8a8922
Split client::JobRequest into Data and File classes

This is the start of making remus able to efficiently send file based
jobs to workers.

Change-Id: Ie37648e7e3f87ab227354710bd8e016f216269be
Add notes on what the next design choices are.

Change-Id: Ic9bdf8f375f1b78da8b6c60c8f1c164ee3c200a3
Make derived servers able to control lifespan of factory generated workers.

Change-Id: Ib40d86de61599d8fde8962e97ad4b16014eb6cfb
We need to send absolute paths for executeprocess to work reliably.

We where sending only absolute paths when the server wasn't in the same
directory as the worker, which caused the factory to fail to properly launch
workers.

Change-Id: I0dbd7451de7e0b2ad714bba65ac9451a510aac3a
Update the basic client to report outstanding jobs and query throughput.

Change-Id: I78bfd4f75c5048925e7a5f1c322e517dfa1532f7
Update debug output to state that a job has expired not failed.

Change-Id: I1f2a851d5f033eac4969dfa97844feb023ba7816
Add code to job queue test to show bug.

Currently the JobQueue is using an iterator to a vector after calling
remove_if on the vector. Remove_if invalidates iterators, and so we
are removing the wrong ids from the set, and causing very subtle
bugs with the jobqueue returning ids for jobs that are still queued.

Change-Id: Iece66845186ee126a6b52ecf83f07569961381e9
Correct JobQueue not to use invalidated iterators.

Change-Id: Ia8c827b225634181ab5de3c79942febd0e3fb6e1
Fixup with client having throughput output.

Change-Id: Iac1121b70cd2776703f4537dc77cccd676cd2716
Fix ActiveJobs to properly update status when a job is in progress.

I also added a test to make sure that progress updates continue to be
kept by the server.

Change-Id: Id60e1cf2e60f4838aa0853a77c09666d3dc143dc