copy over test utils from Gradle core
fix some compilation errors and build out more class definitions
add default implementation class
default implementation only missing the ignoreExitValue config
implement ignoreExitValue wrapping