Add first-class Perfetto wakelock data source.

The Perfetto data source uses significantly less trace buffer size by
interning wakelock information and writing the encoded data into packed
arrays. Users can get further reductions by setting a threshold, under
which short wakelocks are dropped.

Bug: 400774865
Flag: com.android.server.power.feature.flags.enable_app_wakelock_data_source
Test: atest PowerServiceTests:WakelockTracerTest
Change-Id: I519f0d1b4d7c579963dbbd157b4442128d6e9eab
10 files changed