Add TestRunner class to wrap Open3.

+ Open3 crashed 1.8.7 builds. Add TestRunner class
  that wraps Open3 for modern Rubies and falls
  back to IO redirects and Kernel.system for 1.8.7.