Adds support for stripped-down Ubuntu images which may not have kvm-ok in their path.

https://bugs.launchpad.net/juju-core/+bug/1342747
@axw: Correct, I am intentionally breaking the encapsulation principle in favor of the O and D in SOLID design. Specifying where to look for an executable on the file-system strikes me as something that should be up to the caller, not the implementation. A great example is the unit test, as you mentioned.

@wallyworld: Because the parameter is variadic, the signature remains the same for all callers who don't care to look in other paths. How you described the algorithm working is exactly how it does: it first checks the $PATH, and if it can't find the binary and the caller has specified other directories, it then checks those.

Please consider this my only attempt at pushing-back, and reconsider. If you still disagree, I will happily change it. Thanks for the thoughtful comments.