core: Context.InitProvider must cache providers using absolute addresses
core: Context.InitProvider must cache providers using absolute addresses

Previously InitProvider was incorrectly using only the relative address,
which (due to the ambiguity in the string representation of absolute vs.
relative addresses) caused it to always initialize providers in the root
module.

Now we use the absolute address as the key, which then agrees with the
Provider method and ensures that each module gets its own separate
instance of each provider if explicit configuration is present.

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