Fix QC alarm spamming.

Apps could reach their job count limit during an active session. When
this happened, QC would correctly identify that the app was out of
quota, but it wasn't correctly calculating the in quota time, so it was
trying to set a time at 0 (or whatever the last in quota time had been).
This caused a loop where AlarmManager would fire the alarm, QC would see
the app was still out of quota, and set a new alarm for the same old
time. This cycle was more common for apps in the RESTRICTED bucket that
had a much lower job limit. Now we correctly calculate the in quota time
and avoid the spammy loop.

Bug: 154444435
Bug: 155245660
Test: atest CountQuotaTrackerTest
Test: atest CtsJobSchedulerTestCases
Test: atest QuotaControllerTest
Change-Id: If07a6133b3ccf8201ac2fd86622bd8e1686f1b0a
3 files changed