Validate jobs in JobValidator instead of Job()

Move job validation logic to JobValidator from Job and JobId constructors.

This allows the helios CLI user to run
`helios create --file somefile.json job_name image_id` without
specifying the job_name and image_id in somefile.json. Previously, this
failed because of the null checks in Job and JobId constructors which
occurred during somefile.json deserialization into a Job instance.