Support mono outputs and inputs.

* Support selecting mono outputs and inputs in Sound Hardware preferences.
* Microphone can accept stereo or mono input now.
* Vinyl control (and consequently deck passthrough) does not support mono.

Tested with a stereo built-in mic on the Vinyl Control passthrough, auxilliary
passthrough, and microphone inputs.

I think PortAudio, CoreAudio, or my hardware has a bug when a single output
channel is enabled. The sound Mixxx emits to Channel 1 can be heard faintly in
Channel 2 even if we have only opened Channel 1 for output. If we have only
opened one channel for output there should be no possible way Mixxx could cause
audio to be heard in Channel 2 so this suggests it is not a Mixxx bug.

Fixes Bug #681689.
Remove debug messages.
Add comments about why and how we use QPoint.
Use "channel_count" in sound config XML instead of "channels".
Fix style from review comments.
Specifically note if a beatloop roll is active, and only disable slip on reloop_exit if that's true.
Implement Master / Headphone split mode
Don't override isMaster and isPFL for EnginePassthrough and EngineMicrophone.

Instead, use the "pfl" and "master" controls for [Microphone] and [PassthroughX]
but default to master enabled and headphone disabled. If a user wants to, they
can map these controls and change them.
Rename headSplit feature
Merge pull request #152 from ywwg/master-cue-split

Implement Master / Headphone split mode
Merge pull request #153 from rryan/mono

Support mono outputs and inputs.
Re-fix loop I already fixed?
Don't free the downmix buffer in SoundManager until all devices are closed. Fixes a race condition where we get a callback after the SoundManager shutdown process has begun. Fixes Bug #1269196