Handle GC in weakref iter
Handle GC in weakref iter

There is an issue that's popping up during automated testing:

https://jenkins.saltstack.com/job/salt-linode-cent7/lastCompletedBuild/testReport/integration.modules.grains/TestModulesGrains/test_set_val/

This could be caused by the iteration of the dict keys triggering a GC,
thus cleaning up the value we are about to return. This attempts
to handle that condition by simply falling back to re-creating
a channel if this is the case.

cc: da39a3ee5e6b4b0d3255bfef95601890afd80709@jacksontj

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