make CriticalError a feature

well `ConfigureCriticalErrorAction.DefineCriticalErrorAction` required it. I think it is legit for feature configs to get access to it. is that sensible?

I also left `ConfigurationBuilderExtensions.GetSettings` in this PR (the advanced extension we talked about), although since it is not required for this PR i am tempted to call YAGNI on myslef and delete it for now. thoughts?