Fixes #5579: Implement heartbeat mode

This class name is very confusing. We are mixing two different concepts here:
1) In changes-only compliance mode, we must only send the "StartRun" message if there is at least one report to send.
2) In changes-only mode, in the case where the heartbeat frequency is lower than the agent run frequency, we need to not send StartRun and EndRun messages on every run.