Handle glBufferData being used to rename/orphan to a new size
As a slight concession, create a 'fake' VAO to use when 0 is bound

* I think this is invalid in the core profile, but it's a simple workaround
  and this might be a common problem.