New test interface

What's the reason for this to be a class at all? Can't `detect` simply be a method in the companion object, taking `jsEnv` and `classpath` as additional arguments?