graphics/opengl: Added VBO support for glDrawElements and glVertexAttrib...

This commit allows Python code to use glDrawElements and glVertexAttribPointer with VBOs.

According to the spec: when a non-zero named buffer object is bound to the GL_ARRAY_BUFFER target the last parameter is treated as a byte offset. This change allows the caller to pass an integer or a bytes object as the last parameter . An integer is used as an offset while a bytes object is used as data, thereby supporting both use modes.