autodetect connected/disconnected cams while running

This changes the behaviour of autodetection (GPhoto2.list method) so
that cameras that are connected or disconnected while the app is running
are reflected in the list.

Calling GPhoto2.list multiple times might leak because it creates new
GPCamera objects every time, and I'm not sure if they get cleaned up.