Introduct struct channelset to describe a set of channels
pubnub_channelset_*(): Take struct channelset *dst instead of struct pubnub *p

We are preparing ground for auxiliary channelsets.

As an aside, due to this change we now reset timetoken 0 on fresh
subscribe, not complete unsubscribe.
pubnub_channelset_*() -> channelset_*()
Use 'cs' for misc. channelset variables to eschew surplusage
pubnub_subscribe_multi(): Factor out pubnub_join()