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 :)
Merge pull request #10332 from jacksontj/channelreuse

Reuse Channels