The big thing here is switching it over to use the job_script module like the other job runners. This has the advantage of enabling job metrics and job_conf.xml defined environment tweaks with the local job runner. The resulting script could also make it easier to rerun jobs external to Galaxy after failures and debug problems.
There are some other commits in here including a good collection of unit tests and some optimizations (worked I started a while ago to try to optimize the speed of functional tests - these optimizations include disabling polling if job limits are not set and an option to embed metadata setting right in the job the way other runners do).
The embedded job metadata thing should be revisited at some point - not really sure there is value in the local runner operating differently than the other runners in this respect - this class could be made a lot cleaner (and I imagine more robust) if this were simply the only option.