Task health status change notifications

The reusable health check program added in #22579 emits TaskStatus
messages when the task under supervision first becomes viable (when the
task passes its first health check).  It also emits a message when a
task changes state from healthy to unhealthy.

However, the scheduler should be notified for _every_ observed change in
health status.  It's easy to imagine cases where the scheduler wants to
wait a while before killing an unhealthy task, but still be notified of
status changes so that load balancers may be updated, etc.  This patch
therefore causes the scheduler to also be notified when an unhealthy
task becomes healthy again.

Review: https://reviews.apache.org/r/23966
Fixed a flaky slave recovery test.