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).
g_error() will kill the process... but otherwise you probably want to clear the exception here to continue to be able to call further Java methods in the future.