Validate jobs in JobValidator instead of Job()

Move job validation logic to JobValidator from Job
and JobId constructors.
So as to make the logic a bit clearer to read, just return errors after this, as there is nothing after the else.
Also, you may want to take a look at: https://drew.thecsillags.com/refactoring-flow-control-and-conditionals/ for general approaches to making flow control stuff like this a bit easier to visually parse.