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
* Puts query method on class because it's not instance's responsibility
Merge branch 'jy-runner-availability'