Fix multiple identical check-* tasks.

- Add a check to serial() for double job as in parallel().
- Fix issue where we check for top level package N times, instead
  of checking each dependency, i.e., packages we need to build.

Signed-off-by: David Abdurachmanov <David.Abdurachmanov@cern.ch>
Allow incremental/continued build with --no-bootstrap option

The old scheduler allowed building everything in one step, but
functionality was lost with new scheduler. rpmCacheUpdate() with
--no-bootstrap option yields an empty RPM DB cache. While preparing
tasks in checkPackageInCache() we also add install-* tasks as
dependencies, yet such install tasks are never queued and scheduler
goes into a loop waiting for non-existent tasks to finish.
isPackageInstalled() due to empty RPM DB cache fails to report that
some or all packages are already installed. Update isPackageInstalled()
to check for .package-checksum file if --no-bootstrap option is
enabled.

Signed-off-by: David Abdurachmanov <David.Abdurachmanov@cern.ch>