Add HasCallStack constraint to `ioError`
I recently noticed that Control.Exception.ioError lacks a HasCallStack constraint, unlike most other exception-throwing utilities. Adding such a constraint will allow HasCallStack backtraces to flow from ioError's call-site to the exception backtrace.