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
@w00204372 there's no support for wrap around currently. As you see at https://github.com/streadway/amqp/pull/116/files#diff-ebf2d81dfa1870776af7ab1d9ac88175R44 I thrown an error if that would happen. 

Yes @streadway this should certainly be a factory instead. (Where we easier can support things like wrap around too).