Add the concept of session's to remus.
Created by: robertmaynard
Currently all workers that exist inside remus are based on a stateless model. The presumption is that any worker of a given type will be able to fulfill any job given. But lets say that we have a really large model that we transmit to a worker, which from we might want to generate numerous meshes. If we have multiple workers that can fulfill the given requirements we would have to send the entire model each time.
I want to introduce the concept of a session to remus. A session would allow a client to bind instances of workers to accept multiple jobs, and would not give jobs to workers outside the session, even if they match all the requirements.
A session would not be a 1 to 1 binding of clients to workers, but would support a 1 to N binding which allows clients to decide how many workers are part of a session.
Currently if somebody wants to create a session using remus they need to do it in a 2 set process. The first job that a client sends, and which a worker accepts is merely a reference to a session Id. After that the worker disconnects from the server, and reconnects with the session id as the tag for its job requirements. Now a client sends all job requirements using that tag, and we have a poor man's version of a session