Switch Speech Recognition to asynchronous callback-based AudioManager interactions.

1) This introduces AudioSystem, which provides an asynchronous interface to AudioManager and eventually will replace AudioManager.
The plan is to gradually populate it with all the required methods and switch all AudioManager clients to it,
in preparation for moving AudioManager functionality to Mojo audio service.

2) SpeechRecognizerImpl now uses this interface, which required adding an extra state to its FSM.

3) SpeechRecognizerImpl unit tests are updated to take into account the new threading model and the new state.

BUG=687981,672468
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2675713002
Cr-Commit-Position: refs/heads/master@{#448273}
15 files changed