make CriticalError a feature

@johnsimons  if this is going to be public is it the best name for the type? 

also the `Handler` method? perhaps `RaiseCriticalError` instead?