Make sure rabbit_client_sup will terminate rabbit_mqtt_client_sup and not keepalive_sup
List rabbit_mqtt_collector in rabbit_mqtt_sup child spec

To make sure the collector is shut down as expected.
Start collector before client_sup so that it's stopped later than the other
Close direct connection cleanly when mqtt_reader terminates

Otherwise the connection will receive {'EXIT', Pid, shutdown} which it does
not expect and log a nasty crash report.
merge bug26194 into stable
merge bug26189 into stable
Explain