Refactor Job sync implementation
It occurred to me that the way I implemented !26 (merged) was unnecessarily complicated and fragile. The GitLab API supports querying jobs by pipeline id, so we can simply use the incremental nature of pipelines to load jobs smartly, in a pattern consistent with merge_request_commits, epic_issues, and pipelines_extended.
It would be a quick change to also add a config switch for jobs, if we want to have it function the same as merge_request_commits and pipelines_extended, but given we support selection know I don't suppose that's necessary.