fixed channel.close and connection.close issues

Left some comments in the commits if you want to see more detail. Basically connections with channels that had consumers wouldn't actually close when connection.close was called. Also, when channel.close was called on channels with consumers Channel.Close was being sent twice which caused RabbitMQ to nuke the connection.