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
@streadway @michaelklishin @carlhoerberg 
Hi all,
this method still has problem, the channel 0 is not exist in channelRegistry's channels map, so when wrap around, "m.channels[id] != nil" this judge does not work(because m.channels[0] == nil), so there will still reuse channel 0,then get problem.