make ElementGroup and VertexArrayObject movable to avoid using unique_ptrs