feat(engine): scheduling according to current cluster load

Introduces a job control object with the ability to schedule jobs according to current load in the cluster. Considers memory, cores and local disk job requirements and the same for load. Has clear defined dependencies on how to hook it into fleet and operate it (the hookup hasn't been done in this PR).

Follow-up commits in this PR will flesh out the unit testing.