Don't schedule jobs in 'bad' apps

When an app has been temporarily marked 'bad' because it's been
crashing, binding to its services will appear to succeed but not
actually begin execution.  This led to spurious timeouts when jobs were
scheduled in this state.

Fix by incorporating a 'bad' state check into the job runnability
determination.

Fixes: 125505588
Test: atest CtsJobSchedulerTestCases
Test: manual (repeatedly crashing app then running jobs)
Change-Id: I04003265086d74517e7838f1d1332cc4d3ef483c
3 files changed