Custom ringtone picker v2

Bug: 28667387

- Request the READ_EXTERNAL_STORAGE permission if it isn't already
  granted when launching the ringtone picker. This allows the listing
  of external ringtones stored in the alarms/ folder.
- Allow the volume rockers to control the alarm stream volume while the
  ringtone picker is showing.
- Load the RingtoneManager's cursor off the main thread to prevent
  potential ANRs and jank.
- Use Theme.AppCompat.Dialog to more closely match the styling of the
  platform version.
- Disable the "OK" button if the selection is invalid.

Change-Id: I1ec6b0b744a3a19b3f289e33c24db982543862bc
9 files changed