- debounce switching by 500ms when toggling between video/photo capture
- ensure there is only one source of truth for the current camera mode - this is the CameraXPreview
- refactor the MainActivity to depend on the CameraXPreview for the camera mode
- remove unused code in CameraXPreviewListener, MyPreview and in MainActivity
- in MediaOutputHelper,
- add support for specifying the output URI if present in the intent
- when the output URI is specified,
- for Image Capture, we return a `Bitmap` as a `data` extra and also the URI as the Intent data
- for Video Capture we return the `Uri` as the Intent data
- if no output URI is specified in the capture intent or if there is an error while trying to access the URI, use the default location with MediaStore, so we do not return inconsistent URIs (eg, SAF tree URIs)
- add CameraXInitializer to abstract CameraXPreview initialisation logic