This patch moves `Mesh` polygon material indices out of the `MPoly` struct to
a generic attribute, with the goal of simplifying code, and eventually reducing
memory usage and improving performance.
Until 4.0, meshes are written to and read with the existing format, and backwards
compatibility in DNA means we can't actually remove the field from the struct yet,
but there may be ways around that in the future.
Ref T95967
TODO:
- Fix multires material evaluation: `ccgDM_copyFinalPolyArray`
- Run tests, fix as needed
Branch: `refactor-mesh-material-index-generic`