Complete rework of basically everything

But still haven't completely implemented OpenGL 3.3+, still working on foundation.