For the `TraceUtil` methods that accept `Callable` and `Runnable` types, make them generic over a child of `Throwable`. This allows us to consolidate the two method signatures into a single more flexible definition. Signed-off-by: Duo Zhang <zhangduo@apache.org>