Refactor SoundEffectsHelper for asynchronous loading

Use a dedicated thread for all SoundPool and MediaPlayer
operations. This ensures that the client (AudioService) doesn't
get blocked or delayed. This also removes the need to use
locking as all access to data happens on the same thread.

Simplify the implementation of the mapping between UI effect IDs
and SoundPool sample IDs.

Add event logging for sound effects loading.

Bug: 135763139
Test: normal scenario
      media volume responsiveness with stuck SoundPool
      behavior when declared sound assets are missing
Change-Id: Ie5a1684a2cabe05ff53270ad97cab161a87a59f9
Merged-In: Ie5a1684a2cabe05ff53270ad97cab161a87a59f9
2 files changed