core: Use hcl.ApplyPath for ignore_changes and "requires replace"
core: Use hcl.ApplyPath for ignore_changes and "requires replace"

We were previously using cty.Path.Apply, which serves a similar purpose
but implements the more restrictive traversal behaviors down at the cty
layer. hcl.ApplyPath uses the same rules as HCL expressions and so ensures
consistent behavior with normal user expressions.

cty.Path.Apply also previously had a crashing bug (discussed in #20084)
that was causing a panic here. That has now been fixed in cty, but since
we're no longer using it here that's a moot point. The HCL traversing
implementation has been fuzz-tested and unit tested a lot more thoroughly
so should not run into the same crashers we saw with cty before.

ewbankkit/terraform,mattray/terraform,luis-silva/terraform,gechr/terraform,pryorda/terraform,mattray/terraform,apparentlymart/terraform,ewbankkit/terraform,VladRassokhin/terraform,nlamirault/terraform,tommynsong/terraform,heimweh/terraform,drebes/terraform,pryorda/terraform,pradeepbhadani/terraform,pryorda/terraform,hashicorp/terraform,brandontosch/terraform,drebes/terraform,gechr/terraform,drebes/terraform,heimweh/terraform,mattray/terraform,tommynsong/terraform,apparentlymart/terraform,tommynsong/terraform,brandontosch/terraform,apparentlymart/terraform,mattray/terraform,nlamirault/terraform,heimweh/terraform,drebes/terraform,heimweh/terraform,apparentlymart/terraform,pradeepbhadani/terraform,brandontosch/terraform,brandontosch/terraform,VladRassokhin/terraform,luis-silva/terraform,luis-silva/terraform,pradeepbhadani/terraform,ewbankkit/terraform,rnaveiras/terraform,pdecat/terraform,brandontosch/terraform,VladRassokhin/terraform,gechr/terraform,rnaveiras/terraform,rnaveiras/terraform,hashicorp/terraform,heimweh/terraform,pdecat/terraform,hashicorp/terraform,pdecat/terraform,apparentlymart/terraform,pdecat/terraform,VladRassokhin/terraform,luis-silva/terraform,ewbankkit/terraform,nlamirault/terraform