Fix minion ID caching for minions using non-default root_dir

Caught this in my testing since I run my development testing in
virtuialenvs and need to use the root_dir option.

This commit uses the root_dir minion option when deriving a location for
the minion ID cache file. It also cleans up some stuff that drives
pylint crazy like single-letter variable names, and generic exception
catching in try/except.