cuda: Add public API for enhancing NVIDIA CUDA support
One CUDA device context per one device (i.e., GPU card) seems to the best practice, if there is no specific demand. But we don't have any related interface. So every nvenc/nvdec creates new CUDA device context for now. Like openGL context sharing, CUDA context sharing by using new object such as GstCudaContext can be helpful for CUDA use case. Additionally, CUDA specific allocator/bufferpool (and CudaUpload/CudaDownload maybe?) is required obviously.