Instead of hardcoding paths, look for them in the most obvious places

Closes: #460

I know this is somewhat ugly, but I think it's better than hardcoding paths (which, as I've said elsewhere, I really, really hate! :).

To support the old behavior (setting the variable in the shell before calling), I first check to make sure the variable is empty, THEN check for it's existance...

The issue mentioned only talks about lsmod, but I figure since I do this, I could just as well do it for all the commands (including the udev{trigger,settle})...