core: EvalRefresh should not mutate the state object it is given
core: EvalRefresh should not mutate the state object it is given

We now treat states.ResourceInstanceObject values as immutable once
constructed, preferring to replace them completely rather than update them
in-place to avoid weird race conditions.

Therefore EvalRefresh must copy the state it is given before mutating the
Value field of it to reflect the updated value from the provider.

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