Reworked how buffers are bound so they can track which binding point they were applied to.
Desktop gl context now stores the gl functions in a shared ptr.
gl functions class now stores buffer functions.
Implemented the desktop gl buffer object.
Desktop gl texture now stores the gl functions object.