don't allow a job with id 0 (will be used for invalid job id)
if the job manager isn't running, don't add new jobs
progress control with reveal set to true didn't update correctly with dirty regions set to 1. fixes #13887
use a helper function to retrieve the CPluginDirectory instance from the handle, thanks to ulion
use a map instead of a vector for holding plugin handles - ensures that we don't attempt to access the wrong one if an earlier handle was removed. Thanks to ulion for finding the issue