Add support for nested jobs, caching, and performance enhancements for job status updates

I generally don't like single line return statements that are not a straight boolean, so how about, in the spirit of Uncle Bob and making code as readable as possible, this 

        private bool HasCacheExpired()
        {
            return (TimeSinceLastUpdate() > TimeSpan.FromMilliseconds(CACHE_INTERVAL_MILLISECONDS));
        }

        private TimeSpan TimeSinceLastUpdate()
        {
            return _dateTimeService.Now - AllJobsLastUpdate;
        }