Reuse Channels

with support for multiple ttypes

Submitting merge request to get jenkins run. Last time this was merged there were some problems which seem to be related to this but i'm unable to reproduce them locally-- so hopefully we can get something from Jenkins :)
Fixing ini_manage module to preserve empty options. Added unit test for module to verify there are no regressions.
Fixing formatting in ini_manage_test.py.
Fix various "DeprecationWarning, module not renaming, just have __virtual__ return True" messages
Update svn.py

export support revision
file.replace: append/prepend_if_not_found
file.replace(append_if_not_found) - test units
FN_CACHE was not efficient as it was used to replace another dict.

And was defeating ``reload_modules: true`` in states.
states.file.replace(append/prepend_if_not_found)
don't exit in an unknown state
return only once

for consistency with the build() function.
was producing redundant information in output
rename variable to ease code reading
_ret_status expect only keywords argument
Merge pull request #11148 from galet/ini-missing-rows

Fix ini_manage to preserve empty options
Merge pull request #11149 from ze42/dev_replace

file.append(append/prepend_if_not_found)
comply with returned state interface

http://docs.saltstack.com/ref/states/writing.html#return-data
Merge pull request #11158 from lmzopq/develop

Update svn.py
Improving salt-cloud ec2 describe_snapshots function
Don't grab opts/pillar values when there is an explicit default file

Simple fix for bug #11133. If a defaults file is *explicitly* passed in at the same time that a mysql.user (etc) exists in opts/pillar, then the opts/pillar user will override the default file instead of the other way around. This change would fix this, but could in theory break things for older version. The ideal solution would be to actually parse the defaults file, but that seems way more error prone.