fix(util): properly handle exceptions from onPrepare and onExit

p.s. the important bit is in `runFilenameOrFn_` in `util.js`
If filename is a filename, the first conditional will resolve the path and require it, thus executing it. If it exports a function, the second conditional will call the function.