add println to debug reconnect failure upon fatalFailure involving 1) MQTT layer corruption, e.g. invalid messageId, CONNECTION_REFUSED_SERVER_UNAVAILABLE, invalid ACK message, etc; 2) sessionFaiure, e.g. TCP connection lost, ping no response. Suspect problem due to old transport not closed fast enough before new transport initiated for reconnection and cause old/new transportListener interfering and competing for time
revert CallbackConnection to seperate the role of handleFatalFailure and handleSessionFailure, re-connect is now expected to be done by connection.listener