Using a Vertex Array Object to retain states

 - Done once on init, so less needs to be done on each frame
 - Added an uninit() function freeing GPU memory
 - Added some more comments explaining all this