RAII classes to protect OpenGL attribs and matrices
clean up glPush*/glPop*: use RAII classes