Connect to KJob signals with functor-based connection syntax

KJob::percent(KJob *job, unsigned long percent) signal is public since
https://commits.kde.org/kcoreaddons/c0b312a41f7fcb42ac6251a2d194c7799dfac723
(since KF 5.46).

Simplify JobStatus implementation:
* move slotPercent() from JobStatusPrivate to JobStatus for simplicity;
* remove unused JobStatusPrivate::m_job data member.

ulong => unsigned long in PatchReviewToolView::testJobPercent() because
"ulong" is practically absent from KDevelop source code now.

GIT_SILENT
1 job for !166 with kjob-functor-based-syntax-connect in 60 minutes and 22 seconds (queued for 43 minutes and 31 seconds)
detached
Status Job ID Name Coverage
  Build
failed #71416
linux kf5-qt5 qt5.12

01:00:22

45.0%
 
Name Stage Failure
failed
linux kf5-qt5 qt5.12 Build The script exceeded the maximum execution time set for the job
------------------------------------------------------------------------------
Uploading artifacts for successful job
Uploading artifacts...
build: found 16332 matching files and directories

WARNING: Uploading artifacts as "archive" to coordinator... failed id=71416 responseStatus=502 Bad Gateway status=502 token=busGAvGJ
WARNING: Retrying... context=artifacts-uploader error=invalid argument
WARNING: Uploading artifacts as "archive" to coordinator... failed id=71416 responseStatus=502 Bad Gateway status=502 token=busGAvGJ
WARNING: Retrying... context=artifacts-uploader error=invalid argument
ERROR: Job failed: execution took longer than 1h0m0s seconds