Add buffered recording to base class

This change adds new properties `::buffered` and `::num-buffers` to the base class. If `::buffered` is TRUE, `uca_camera_start_recording` will spawn a new thread which will call the camera-specific grab. Any call to `uca_camera_grab` will return the next item from the ring buffer.