Custom probers can now be provided to each job

Previously, if you wanted to use a custom prober, you could provide
one to TemporaryJobs, but every job would then be forced to use it.
Now you can provide different probers to each job.

A job will use the prober passed to its builder. If none was provided,
it will the prober provided to TemporaryJobs. If none was provided to
TemporaryJobs, it will use the DefaultProber.
final