Simplify tests by replacing output capture with asserts where possible

The C++ part of the test code is modified to achieve this. As a result,
this kind of test:

```python
with capture:
    kw_func1(5, y=10)
assert capture == "kw_func(x=5, y=10)"
```

can be replaced with a simple:

`assert kw_func1(5, y=10) == "x=5, y=10"`
diff --git a/tests/test_virtual_functions.py b/tests/test_virtual_functions.py
index f2efb6b..27b0222 100644
--- a/tests/test_virtual_functions.py
+++ b/tests/test_virtual_functions.py
@@ -173,7 +173,7 @@
     assert obj.lucky_number() == -4.25
 
 
-def test_move_support(capture, msg):
+def test_move_support(capture):
     from pybind11_tests import NCVirt, NonCopyable, Movable
 
     class NCVirtExt(NCVirt):