Fix exit code handling in LWR.
Update LWR client through LWR changeset f3d6bcb.

This encompasses numerous individual LWR changesets. The largest of these changes include extensions to:

 - Enable LWR client to work in a fashion where remote paths are precalculated and used during job input evaluation instead of having these inputs rewritten after the fact. (Galaxy + LWR runner require significant modifications to enable this - found in subsequent changesets). https://bitbucket.org/jmchilton/lwr/commits/a06587ff0544f3a09cf221057be1b9107021a9fb.
 - Vast improvements to extra_files_path handling - before it only worked for one level of input extra_files_path - now works with arbitrary nesting of inputs and outputs. https://bitbucket.org/jmchilton/lwr/commits/b5e8c4dffc3a04639550e01f3f44ac3138cc6079, https://bitbucket.org/jmchilton/lwr/commits/ab5bc61f6e0c9e11748436bd61aa1f6cba05f293.
 - Handle tools with version_command defined (LWR servers running on *nix systems only). https://bitbucket.org/jmchilton/lwr/commits/a3b43baa1aa6a8167a4e8cbb195d2a966b6527eb.

As well as several major refactorings to break improve the LWR client code structure

 - Break up stager.py into smaller modules - https://bitbucket.org/jmchilton/lwr/commits/d0efda40b2c92100161ca7f825cb754d6b914db5
 - Refactor complex method __download_results into class with smaller helper methods - https://bitbucket.org/jmchilton/lwr/commits/45fd16e52579c273eea5f52948ca57a1b19daa51
 - Introduce higher level abstrction for staging actions - https://bitbucket.org/jmchilton/lwr/commits/35ea7e2fa88714aff5a38f0e0a55e3fdbcfbe779.
Fix small bug related to from_work_dir location checking...

... would only be exhibited if using LWR + RemoteMetadata.
Fix version output redirection for pre-bash shells.
PEP-8 fixes for local job runner.
Adjust GALAXY_SLOTS in local.py for pre-bash shells.
PEP-8 fixes for jobs/__init__.py
PEP-8 fixes task runner.
PEP-8 fixes for set_metadata.py.
Work on unit test path problems.

Move test/unit/tool_shed to test/unit/tool_shed_unit_tests.
Refactor small __poll helper method out of local job runner's queue.
Local job runner - only poll if limits set (so can be set).

Small optimization.
Allow setting metadata as part of local job.

Any idea why this isn't the default when it is for other runners?
Rework local job runner to create job script.
Reduce code duplication between JobWrapper and TaskWrapper.
TaskWrapper - utilize user_template_environment like JobWrapper.
Reduce code duplication between JobWrapper and TaskWrapper.

Create shared method for building up param dict.
Rework logic in tools related to false paths.

Basically, if a false path is set trust it, don't explicitly check app.config.outputs_to_working_directory. The hope here is that this logic can then be used in other scenarios where a false_path might be setup at the layers (e.g. job_runner) above tool.
Eliminate output path rewriting in TaskWrapper.

Rework task splitting to rewrite paths before cheetah evalulation not after.

Utilizing DatasetPath.false_path mechanisms implemented for config.outputs_to_working_directory. I think this could be made less convoluted if the combination of outputs_to_working_directory and Task splitting were optimized in some way - but this changeset keeps the behavior of that the same (copying twice) just to isolate changes to how these paths are evaluated in Cheetah.
Reorganize tool dataset wrapper instantiation for future extension.

This changeset should change how anything functions, but will make subsequent changes less dramatic.