Draft: Include picamera
This is an attempt to address #358 (closed), BaseCamera is a consolidation of CameraStub and CameraProtocol. The StreamingPiCamera2 Thing is moved to this rep and the CaptureThing functionality is moved into BaseCamera.
This seems to work but needs a lot more testing. The server now throws an error if a method is not defined in BaseCamera even if it is defined in the child class, or if the arguments are different. It could be argued that this is less flexible, but it will prevent bugs where cameras are differently abstracted.
This does not port all functionality from labthings-picamera2 as lots of the functionality is currently unused and not tested regularly. This can be moved into this repo if and when it is needed.
This also relates to stability and functionality around the camera stack in general: See #355 (closed) #298 (closed) #299 (closed) #319 #364 (closed)