Place additional constraints on restricted jobs.

Update JobScheduler to place additional constraints on jobs in the
RESTRICTED bucket:
These jobs can only run when the device is idle, charging, battery is
not low, and on an unmetered network (for connectivity jobs). They do
get one parole session per day where they don't need these additional
constraints met.

Bug: 145551233
Test: atest CtsJobSchedulerTestCases
Change-Id: Ic96841141ed7800295b0b1a54c697a30afc3cd70
12 files changed