Allow other classes to convert portals to general thrust iterators.

Previously only the device adapter was able convert dax portals
to thrust iterators. Now the code is exposed in a helper header
so that we can provide that ability to other classes.
Add support for OpenGL interop to Dax.

We are adding a new opengl namespace with functions that will
take an array handle and transfer its contents to a given opengl
buffer.
Add testing infrastructure to verify opengl interop works.

We need to really test the interop code with all device adapters
to verify that it works under all uses cases. To do that I am
adding infrastructure that makes it easy to test the interop
code with any device adapter.
Add cuda opengl interop testing.
Add in benchmark that tests the openGL interop performance.

The test verifies that the interop can handle being push a couple
million triangles and still get a good fps.
Update opengl interop documentation.
smash down with opengl interop
WIP: making sure we setup cuda to have an opengl context.

We need cuda to be set to the proper opengl context before
we do anything else.