Add messages to errors
Simplify enum names
Lazy load the initialization of Camera
Move Port.autodetect to Camera
Camera.autodetect returns a list of Cameras
Rename Camera.autodetect to .all