Rework of the Result Handler System

- Integrates current Stubborn state getters into the helper.
- Allows the user to handle exceptions that are caught, but aren't already been intentionally suppressed
- Allows the user to get call execution time for profiling/logging
I'd have a run_multi() or run_all() function if you want to pass multiple functions to run. Then run() can be consistent with only accepting a single function and only returning a single value.