GStreamer-1.4: Add DeviceProvider based video capture device enumeration.

If GStreamer version is >= 1.4.0, build with support for
GstDeviceProvider and GstDeviceMonitor and use it to dynamically
enumerate video sources which support this. Such source plugins also
store a GstDevice* handle for each detected capture device and this is
used to instantiate a video capture GstElement on request of the
caller, instead of using indirect setting of device selection
properties like “device-index” or “device-name”. The method with the
unique handle is more robust and universally functional as it doesn’t
need dedicated property probing and setting code anymore, good for the
future.

If a source plugin doesn’t support this method, or if built on a
pre-1.4.0 GStreamer, use brute-force fallback code, which will actively
poke some plugins for devices (dc1394src atm.) or just hard-code a
certain amount of devices in the most stupid possible way. This
fallback is unaltered from the 0.10 legacy implementation. The
difference is that it will now apply to almost all video plugins, as
the old property probe interface doesn’t exist anymore.

Current status, as of GStreamer 1.4.0 August 2014:

- Intelligent device provider enumeration supported on Linux with
v4l2src Video4Linux2 video capture plugin.

- Dumb method used for all other plugins on Linux and all plugins on
OSX and Windows, which means all device detection is brute-forced on
OSX and Windows.

- On Windows, only ksvideosrc is ported to GStreamer 1.x, dshowvideosrc
isn’t ported yet. Problematic, given how badly kernel streaming worked,
whereas DShow was ok’ish.

On OSX we have the crappy osxvideosrc which uses QTKit, which has been
deprecated by the idiots of Cupertino since OSX 10.9. Then we have the
new avfvideosrc which uses the new and shiny AVFoundation, the current
“greatest bestest, most advanced way of doing video capture” on OSX -
until maybe next year the idiots will come up with yet another greatest
and bestest, of course, to keep life interesting…
miovideosrc is not part of GStreamer 1.4.0, apparently because it used
Apple private Frameworks, so was probably not a future proof way of
doing things. The plugin still exists in the Git source tree, but in a
non-public branch.

Other changes:
- Always add a videotestsrc to device list, so we always have at least
the synthetic test images for testing on machines without actual
connected cameras.
- Change probe order on OSX: AVFoundation first, so it enumerates as
default capture device with deviceIndex 0. Why? Because AVFoundation
capture works marginally better than QTKit capture on OSX 10.9, at
least as far as a quick test seems to indicate.

-> This code is so far only lightly tested on OSX 10.9 with internal
iSight. The dynamic device provider/monitor enumeration compiles
cleanly, executes without crash, but does essentially nothing, so is
not really tested, as on OSX none of the plugin supports device
providers/monitors so far. This will need to get thoroughly tested on
Linux + Video4Linux2.
GStreamer: Switch between new and legacy based on version check.

Use version check macro to decide if to use the new backend (version >=
1.0.0) or the old legacy backend (version < 1.0.0)
-> No need for extra -DPTB_USE_LEGACY_GSTREAMER anymore.
-> Compilation dependent on SDK header files and their version.