APM: fix log spam from getDevicesForStrategyInt when booting devices.

1. Add initialization function for device selection cache in engine
   and call the initialization function before audio module creation.
   There is no device available before the audio module is available. In
   that case, there is no need to call getDevicesForStrategyInt to
   update the device selection cache.
2. Add speaker as the last selection for STRATEGY_PHONE so that there
   can still be something picked if there is no external device
   connected and no earpiece on the Android device.

Bug: 276781745
Test: make, boot device, check log
Change-Id: If976830dbb6cce192f8b15cd2937ff9824534cc7
8 files changed