This avoids having to make the original data layer mutable when we aren't going to modify it, meaning the memory can still be shared with the evaluated mesh-- saving 1 byte per face in some situations. This was made possible by previous commits that moved to using the Mesh attribute API instead of the SculptSession pointer to edit this data. Eventually the `hide_poly` pointer should be completely removed.