Implement common base class for "looping check" monitors
Many monitors (but not all) check their realservers by doing a
looping call at a semi-fixed interval. Rather than implementing
and testing this separately for each monitor, move this functionality
to a common base class, LoopingCheckMonitoringProtocol.
Instead of DelayedCall / reactor.callLater, use a LoopingCall.
This removes the need for each check to make sure to set up a new
call. The main concern previously was that this could result in
multiple checks running at the same time if a check is slow, but
this is taken care of if checks return a Deferred.