Device listing

This starts with @Rugvip's device-listing work, and adds a bunch of fixes on top. Tested this on Linux (with a single video camera, and multiple mics) and Android (where there is a front and back facing camera).

In the long run, this should all probably be replaced with the new GstDeviceMonitor API, but should work for now.

For testing, test-self-view can be made to allow manual selection of sources via a #define (this is off by default, though).
This is the audio case, so it's set on pulsesrc. v4l2src has /dev/video%d