linux-v4l2: Avoid nested device open/close.

This moves the calls to the property modified functions so the old
handler can close the device. Otherwise this would cause the device
to be opened multiple times.
linux-v4l2: Always display currently selected device.

This adds some code to the device enumeration that checks if the
currently selected device is present. In case it is not it will
add the device but disable it.
linux-v4l2: Disable properties when device is not there.

This adds helper function to disable/enable all properties which is
used in the device selected callback to enable/disable the properties
when the selected device is available/unavailable.
linux-v4l2: Update properties when devices change.

This causes the properties for v4l2 sources to be refreshed when a
device is disconnected/connected.