core: EvalSequence to handle EvalEarlyExitError
core: EvalSequence to handle EvalEarlyExitError

An earlier commit today reworked this to handle non-fatal errors, which
are returned "smuggled" as a special type of error to avoid changing the
EvalNode interface.

Unfortunately, that change then broke the _other_ special thing we smuggle
through the error return path: early exit.

Now we'll handle them both. This is not perfect because the early-exit
path causes us to discard any warnings we've already collected, but it's
more important that we bail early than retain warnings.

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