Added desktop gl specific exceptions.
Vertex attributes track which buffer was bound when they were set.
Added an id() method to desktop gl buffer.
Desktop gl shader can now generate basic shaders.
Desktop gl context can now perform basic draw calls.