Support audio output device enumeration and selection in PPAPI

- Keep the current |PPB_Audio| interface unchanged
- Add a new dev interface: |PPB_AudioOutput_Dev|
- Implement |PPB_AudioOutput_Dev| using the typical HostResource
  implementations like |PPB_AudioInput_Dev|
- Add ppapi/proxy/audio_output_resource.h/cc etc. to implement
  |AudioOutputResource|
- Add content/renderer/pepper/pepper_audio_output_host.h/cc etc.
  to implement |PepperAudioOutputHost|
- Keep ppb_audio_proxy.h/cc, ppb_audio_shared.h/cc, ppb_audio_impl.h/cc
  unchanged, so that the current |PPB_Audio| will not be affected.
- Modify content/renderer/pepper/pepper_platform_audio_output.h/cc to
  accept both |AudioHelper| and |PepperAudioOutputHost| clients
- The way to implement |PepperAudioOutputHost| is borrowed from
  "media/audio/audio_output_device.cc" where audio output selection isi
  supported for javascript.
- Add necessary IPC message definitions for |PPB_AudioOutput_Dev|

BUG=701584
R= bbudge@chromium.org, tsepez@chromium.org, isherman@chromium.org

Review-Url: https://codereview.chromium.org/2755613002
Cr-Original-Commit-Position: refs/heads/master@{#462889}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3a2a470eed665050d284f1e5dd0e7a1c4949d190
24 files changed