refactor(target): Drop init of JobPayload in Target.GetJobs

The JobPayload objects are not used by anything that calls
Target.GetJobs, so we can just stop populating it.
refactor(JobPayload): Require caller of NewJobPayload to provide Type
feat(example): Add socket-activated example service
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.
refactor(job): Centralize payload validation logic into job.NewJobPayloadFromSystemdUnit
Merge pull request #17 from bcwaldon/socket-files

socket scheduling