Failing batches stop the dispatch job.
Added LocalDispatcher.Job and LocalDispatcher.JobPool to track running batches.

A handy side effect of the JobPool is that we can fix our test cases which rely on waiting for the background jobs to complete.
Added LocalDispatcher.Job.kill() to terminate a running job.
Added a window for tracking currently running LocalDispatcher jobs.

Fixes #872.
Added CPU and Memory columns to the Local Jobs window.
Added a MessageHandler per job and displaying the messages in the window.

Also added a tab for Details, which currently just shows the dispatcher job directory.
Using weakref in DispatcherWindow.acquire and LocalJobsWindow.acquire

Fixes #1064.
More OSX friendly stats gathering (hopefully).
Merge pull request #1066 from andrewkaufman/localDispatchUI

Local Jobs UI