Fix userdel 12 exit code

* 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`
* 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.