make C.Run more general
Currently, c.Run can only be used if c.TB implements exactly the Run method provided by `*testing.T`. However, there are other possible implementations of `testing.TB` - most notably `*testing.B`. There could also be other potential implementations that don't involve the testing package at all. Instead of special-casing the Run method signatures implemented by `*testing.B` and `*testing.C`, this PR allows Run to work on any `testing.TB` implementation that takes a compatible function.
Showing with 160 additions and 20 deletions