Split VertexBuffer/IndexBuffer on a per-API basis

This applies the file splitting methodology from #2243 to VertexBuffer and IndexBuffer. As before, there are no functional or style changes wherever possible.