[GCM] Add heartbeat manager and reconnection logic due to heartbeat failure