This should really happen in `update` since we try not to call WebGL anywhere else, which will allow us to integrate with other WebGL engines, and generally keep us sane in tracking down state bugs, etc.

It will also allow us to use the heuristic for updating the entire buffer as I mentioned.