Update the response classes to model the message classes.

This means that the interface is through free form functions.
Update remus to use the updated response function api.
Update the basic client example to use the new JobResult api.

Mainly data() returns a char* not a std::string now.
Merge pull request #208 from robertmaynard/update_response_api

Update response api
Merge pull request #209 from robertmaynard/client_use_new_jobresult_apit

Update the basic client example to use the new JobResult api.
balance job submissions between the different matching workers
Merge pull request #210 from robertmaynard/basic_client_alternate_worker

balance job submissions between the different matching workers
Cleanup the comments in the ExecuteProcess UnitTest.
Remove the ability to mark a process as detached.

A detached process will not write back on the file descriptors, so you can't
safely poll it, or query what the status of the process is. So just remove
the ability to detach the process as it only caused problems.
Update examples to use the new execute process api.
WorkerFactory was incorrectly setting the process attached mode.

Workers that are meant to be killed on factory deletion need to be in attached
mode, not detached mode. If they are in detached mode we can't actually
determine if they are alive or not.
Properly verify that child workers are terminated when the factory is