Move JobResponse to spec.Job
What does this MR do?
Moves network.go's JobResponse and dependencies to spec.Job.
Why was this MR needed?
The common package is huge, and comes with too many associated dependencies. This makes it hard to make modular packages elsewhere, because you encounter cyclic dependencies.
network.go mainly deals with objects sent over the network, and whilst JobResponse is one of these, it's also our best struct that describes the job as a whole to be executed, as a payload from GitLab. It's the job specification/blueprint of what to execute.
Ideally, the job spec would be mainly just a DTO, but given this is a large refactor, I've brought many methods along with their dependencies. Later, this logic should be moved out, so that the job spec is mainly just a DTO.
What's the best way to test this MR?
Existing tests. We're not changing any logic, just lots of renames and changed where things live.