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

These changes are aimed at enabling the LWR job runner 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.

The main LWR changeset this covers is https://bitbucket.org/jmchilton/lwr/commits/a06587ff0544f3a09cf221057be1b9107021a9fb.
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.
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.
Refactor DatasetPath out into newer galaxy.jobs.datasets module.

Add unit test for DatasetPath class.
Eliminate input (hence all) path rewriting in TaskWrapper.

Extend concept of false paths to apply to inputs as well, use the rewrites implemented in TaskPathRewriter.
Refactor JobRunner's in_directory out into galaxy.util for reuse.