Having opaque types for DeviceStream and DeviceContext will allow to improve the tests of the GPU code without duplicating the logic of Context/Stream initialization.
Use new GPU infrastructure in MDLib tests
This make use of common device testing infrastructure in MDLib tests,
where both GPU and CPU implementations are tested. The GPU runners
will now be executed on all the detected devices, not only on the
default one. Also, this will allow to use the MDLib tests in OpenCL
and SYCL, where proper device context object is needed.