Session close refactoring (#467)
* Sessions need to remember how they needs to be closed
To make the code flow easier it makes sense to store in the session instance if a session should be closed delayed or if a session close message should be sent out
* Adjust session close callback to re,ove parameter now stored in session
* Adjust session close callback to re,ove parameter now stored in session
* Move actual close session to ExchangeManager
Session closes can be triggered "synchronously" or "delayed when current running intercations were finished". The latter was not be correct because it is not the interaction that matters but the exchange that gets finished after the interaction is finished. Additionally the logic only implemented for MatterDevice nd not for Controller. So we move closing session logic to exchangemanager.
* Adjust Session closure when removing a fabric
The session used to remove the fabric is closed delayed, all others immediately.
* Allow controller to also receive Secure channel StatusReports
Needed that the Controller receives StatusReports for Session closures from devices
* Adjust session creation in Controller
* Add subscription closure even with throwing error to cleanup
* Split removeSession and removeResumptionRecord
* Do not use sessions already marked as closed as Pase session
* removing all sessions can be doewith and without session close
* use new method from last commit
* use new method from last commit
* adjust fabric tests
* adjust Integration tests
* Finalize
* [execute-chiptests-long] Allow to trigger Log chiptests too and fix scheduled run
* [execute-chiptests-long] Fix head message detection for PRs
* [execute-chiptests-long] Fix head message detection for PRs
* [execute-chiptests-long] Different try to get message
* [execute-chiptests-long] Use latest checkout action
* [execute-chiptests-long] Address review feedback
* [execute-chiptests-long] Enhanced changelog