Allow virtual grains to be generated even if virt-what is not available
Allow virtual grains to be generated even if virt-what is not available

Also normalized _cmds to be a list. The set() functionality wasn't
actually being used, we were just overwriting it with a list. Sets are
also unordered, which is a problem for a list of commands we want to run
in order.

Fixes #26121

saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt,saltstack/salt