Initial work on moving more setup logic to client.

Normally, the client obtains a bunch of information about the job at the outset from the LWR server. This work is aimed at computing that on the client side so that this synchronous communication doesn't need to occur - thereby enabling message queue based communication between the LWR and Galaxy.

A lot of work left to do though - this just eliminates that setup step without doing anything about staging files - so it is effectively useless and somewhat untestable in this state - but it is a first step.

In addition to introducing the concept of a setup handler to abstract out this difference, there is various refactoring of stuff into the lwr_client so it can be used inside of Galaxy while computing the setup information on the client side.