Add job wrapper class
This adds what is in essence just a container for job that is currently being executed, it is made up of
- the JobType, that describes the full nature of the job
- the JobContext, that stores information about the “where” and “what” to interact with
- the JobStep, that stores information about the state of the current step being executed
This was added in preparation for the job queues which will be implemented next. As always the python mappings (and scripts) had to be adapted to support this change.