Have picard use the work dir as tmp space during alignment.

Prior to this; picard would create tmp directories on my compute nodes, which are tiny (in terms of diskspace). Picard also generates gigabytes of tmp data while working, so the disk could sometimes fill up, resulting in the whole system crashing to a halt. This patch introduces an optional `tmp_dir` parameter to the `BroadRunner` constructor, which can is then used later to make sure picard puts tmp directories there, as opposed to wherever it happens to be running. The tmp dir is then set to `os.path.join(dirs["work"],"tmp")` so that tmp files get created on my NFS (where space is effectively infinite).

If we're going to be consistent about this there are probably myriad other places where `runner_from_config` should be passed a `tmp_dir`, but this solves my immediate problem and I didn't want to make too sweeping of a change without some discussion.