Bug 973445 - [settings] refactor Sound panel with AMD pattern

The function may return a promise with telling whether the ringtone is playable or not. Based on the result you can then set the ringtone and update the UI.