Bug 1027713 - Part 1 - Add a volume API in cubeb and use it instead of doing our own soft gain. r=kinetik
Bug 1027713 - Part 2 - Add a cubeb API to query the name of the audio output device in use. r=kinetik
Bug 1027713 - Part 3 - Add a cubeb API to signal that the output device changed.  r=kinetik

The reentrant mutex is needed so that users can call back into cubeb's API from
the callback.
Bug 1027713 - Part 4 - Pan audio to the right when we are using gUM and outputing sound using MacBookPro speakers. r=jesup
Bug 1023947 - Part 1 - Drop frame instead of buffering them when we are swiching device.  r=jesup
Bug 1023947 - Part 2 - Allow getting the current input device in cubeb.  r=kinetik
Bug 1023947 - Part 3 - Reset the output AudioStream when switching to an audio input device that uses the headphone jack on osx. r=jesup
Bug 1027713 - Part 5 - Trigger the panning logic on stream creation. r=jesup

UpdateStreamOrder is not called often because it's expensive (it's called only
when the graph topology changed), and it's earlier in the MSG loop than the
audio stream creation, so we need to tell the newly created AudioStream that a
microphone is active on creation as well.

The panning logic is also now triggered on stream start, because it is async.
Bug 1027713 - Disable test_stress on windows 8 as well.
Bug 1045018 - Implement a thread safe singleton to allow setting kAudioHardwarePropertyRunLoop property to NULL only once. r=gcp
Bug 1045018 - Make cubeb_audiounit.c use the new cubeb_set_coreaudio_notification_runloop function. r=kinetik
Bug 1045018 - Make webrtc.org code use mozilla_set_coreaudio_notification_runloop.  r=gcp