Refactor Runner avilability checking

* Allows tests to run on JRuby
* Adds a query method to know if the Runner is available
* Uses the query method to determind best_runner
* Explains why a Runner is unavailable if you try and can't use one
* Puts query method on class because it's not instance's responsibility