Force batching non-ACTIVE jobs.

Non-ACTIVE jobs means jobs whose apps are in the WORKING_SET, FREQUENT,
or RARE standby buckets.

Trying to batch the run of non-ACTIVE jobs as much as possible. The policy is:
1. Run non-ACTIVE jobs if there are a minimum number of non-ACTIVE jobs
   ready to be run at the same time. The default minimum is 5.
2. Run non-ACTIVE jobs if any non-batched jobs are going to run.
   Non-batched jobs are jobs in the ACTIVE bucket or jobs that satisfy
   condition #3.
3. Run a non-ACTIVE job if it's been significantly delayed. By default,
   this happens if it's been delayed because we couldn't find a large
   enough batch for over 31 minutes. It is still required to be eligible
   to run per the active standby throttling mechanism. If it is eligible
   and delayed significantly, it will not be batched.

The minimum value and max delay time are both configurable.

Bug: 136107840
Test: atest com.android.server.job.JobSchedulerServiceTest
Test: atest CtsJobSchedulerTestCases
Change-Id: I7f751ac3cb8e57328a1baaa044120bc5a157ad3e
4 files changed