Adds a RenderDevice implementation using OpenGL.
This change introduces the RenderDevice class and its associated
functionality for interacting with the OpenGL API. It includes
functions for managing the rendering pipeline, setting state,
creating and managing resources (buffers, textures, framebuffers,
etc.), and performing draw calls. It also contains GPU timing and statistic tracking.