adds subscribe_multi method

This pull request adds a method to subscribe to multiple channels.   Also added some more docs for subscribe.   This is backwards compatible with past implementations, so can be for 1.1.0.

One thing that is left to do is to be able to query and return a list of available channels.  I need to see how this is done though.
the question was if we get an immediate error (for example, caused by a network being unreachable), should we retry immediately?  Or should we wait 1 sec?  I am somewhat agnostic on this but it was suggested and I am happy to remove it.  should we throttle reconnections or not?  For timeouts I don't think it matters.  For ICMP errors it might.