Respect channelMax

Limit number of channels to channelMax as negotiated with the server.
Try to find an available channel id, even if it means to wrap around.
Return ErrChannelMax if no available channel id can be found.

Addresses #115
Yes, if "next" returned a channel already in the map it should be ok (or somehow reserved the position). Could also instead of storing "sequence" (or rather last channel_id) iterate through the channel map and find the first available slot, resulting in a more compact map.