Fixing server initiated connection / channel close handling.

Previous code wouldn't work if the server initiated the close. Test with RabbitMQ management and try to do a force close. This will allow a consumer to recover and reconnect.