Speed up kernel wakelock polling

Kernel wakelock polling consumes about 4% of CPU time on wearables
for dogfooders (userdebug). This translates to about 1% on public
releases (user).

This change caches file descriptors and only reads statistics that
are actually consumed. This results in about a 10x speedup based on
microbenchmark results.

Flag: android_kernel.flags.fast_kernel_wakelock_reporting
Bug: 364368163
Test: adb shell /data/local/tmp/SystemSuspendBenchmark --benchmark_filter="getWakeLockStats"
Test: atest SystemSuspendV1_0UnitTest

Change-Id: If2bb840f7cb963e65abe4c941d972ec59285ac6b
9 files changed