fix(scheduler): Schedule .socket jobs to the host that holds the .service job

systemd .socket units need to be on the same machine as the .service
units, so when a .socket job is submitted, we attempt to locate the
corresponding .service job and schedule accordingly.

The current approach does not solve the problem of moving a .service
job, however, which will require the .socket job be rescheduled.