Schedule the ping restart through AlarmManager to be able to cancel it
properly on connection loss, and make sure to only restart idle
connections that aren't already idling (which may happen e.g. on bootup
or if there was a sync request in the 30 second wait window).
Change-Id: If62ffa0981a7a0a71ed7764a9724c07466c6d8a3