Validate jobs in JobValidator instead of Job()

Move job validation logic to JobValidator from Job
and JobId constructors.
consider extracting a validateJobVersion method