Make newly-added repo available to pkg states

If a package is added using a pkgrepo.managed state, and a pkg.installed
state needs access to this newly-added repo, it will not be able to find
the package since the pkg.refresh_db happens in the call to pkg.install
(just prior to the package installation), and not when the package
targets are initially looked for. This commit adds a pkg.refresh_db
before the targets are checked, and then supresses the refresh_db when
the package is actually installed (because at that point, it would be
redundant).
Merge pull request #8187 from terminalmage/issue8156

Make newly-added repo available to pkg states
Moved test cases from #8195 to a better place.