Refactored more of the Geometry API.

Implementation is going to be a pain, so I wanted to make
sure that the API is exactly what is needed. Maybe later the
old idea of having individually accessible vertices will come
back.