Added a Vertex Attribute Object (VAO) class

This class uses OpenGL VAOs when available, and emulates them when
they are not. Even for the non-accelerated case it caches attribute
array locations in the shader programs and provides a convenience
to collect enable/disable calls.

Change-Id: Ibbad19ffb920cd12932d298e811b17e648bc2a4b