General Skeleton for OpenGL so you don't have to do annoying boilerplate