Custom error handler for ROOT file opening
This uses WithRootErrorHandler to catch ROOT errors during file opening in EventLoop. If an error message is detected, an exception is thrown.
This follows on from the discussion in !61079 (closed) and replaces that MR.