Setting up the existence of channels

Most of this update is just some documentation and thoughts.
I've been trying to decide on naming conventions and on how
channels should share their implementation and make use
of the resource graph, while keeping alts in mind as much
as possible...
We're nearly sorted - just trying to work out how best to use
the template pattern... otherwise might implement
a queue with O(1) insertion and deletion and just use that.
A lot of channels will be doing broadly the same thing...