Refer to BaseVariable instead of Variable.
Don't update Variable if passed None.
Switch to using cv2.VideoCapture.

Move disconnect() for images into the source.
Update Images data logic.

- Image which updates itself and emit events.
- DerivedImage can be set with an image data.
- ImageProvider which just has an image, mo processing.
- Trackers now only fetch image from camera once per cycle, update their
image and visualisation properties.