Add support for Vertex Array Objects (VAOs).

Using the APPLE extension and not the OpenGL 3.0 API.  Seems like
it would require using a newer OpenGL profile which causes a lot
of other changes.  Stay down the legacy path for now.