Refactor Job tracking code: introduce a JobType object

This pull request addresses issue #250 by eliminating the `JobType` enum in favor of a class that represents a job type and encapsulates multiple fields.

This is the first step of a refactor of the job tracking code.