Hook up global hibernation to hibernation job

When a package is not used by any user (as determined by a new API in
UsageStatsManager), we globally hibernate the package, allowing us to
optimize the package at the package level.

This CL is code covered by AppHibernationIntegrationTest. The new
UsageStats API is API covered in CTS already.

Bug: 183463200
Test: atest HibernationControllerTest
Test: run hibernation job, check global hibernation state via shell cmds

Change-Id: Ide5955f5efe3ea75e324b3ed7568990e80f87332
3 files changed