Proper support for instanced drawing using external matrix render buffers.

Also switched to a simpler method of updating a VBO, which seems to
perhaps be faster (and definitely is cleaner and more obvious)