Dispatcher tweaks

My work on Caribou requires that postDispatchSignal() be executed unconditinally, so the first commit addresses this.

Another thing I needed was access to the path to the directory the execution script was about to be saved to in preDispatchSignal(), so I could save some additional files there. I expected this to be returned by dispatcher->jobDirectory(), but it turns out this isn't a virtual function, and returns a directory one level up. Also, LocalDispatcher.jobDirectory() creates a new directory every time it's called, meaning making it virtual wouldn't work. I've addressed this by making a new Dispatcher::createJobDirectory() virtual function. The dispatcher overrides this and returns the path it just created, which is subsequently accessible through Dispatcher::jobDirectory().