
Split the JUnit 5 `OutputCapture` class into separate `OutputExtension` and `CapturedOutput` classes. The JUnit 5 callback methods are now contained only in the `OutputExtension` class so no longer pollute the public API that users will interact with. The `CapturedOutput` class has also been updated to capture System.err and System.out separately to allow distinct assertions if required. Closes gh-17029