quote strs in virtualenv mod
Start listening for events when RunnerClient is instantiated

If we're not listening to the eventstream before starting a new job
there's a high likelyhood that we'll miss the job return event. This
change mimics the event-based runners addition slated for Boron.
Merge pull request #18499 from whiteinge/runner-sync-eventlisten

Start listening for events when RunnerClient is instantiated
Handle highstate output when the result is a dict
Properly output the results of salt.function states
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`
Switch `open()` for `salt.utils.fopen()`