share job info across job servers

Make sure jobDAO reads job info from DB.
Not necessary but it's cleaner/elegant if you just use the 'orElse' from Option. Something like this:

  override def getJobInfo(jobId: String): Option[JobInfo] =
    jobsInfo.get(jobId) orElse {
      getJobsInfoFromDb().foreach { case (id, jobInfo) => jobsInfo.put(id, jobInfo) }
      jobsInfo.get(jobId)
    }