Simplify the logic in `__virtual__`.
Only catch `OSError`, replace unneeded function with it's loop and break out of the loop as soon as we're done with it.
Use a list for command arguments building and simplify logic with the command retcode.
Simplify command arguments building. Handle exit code 12. Fixes #6920.

When the command's exit code is 12 and it's from a Debian based distribution, let's match it to a know error and if matched, log and don't return as an error. See http://goo.gl/HH3FzT