Add optional health monitor to ShardManager

HealthMonitor is a trait that mixes in to ShardManager, and monitors the shards by Pinging them to observe if they become unresponsive.

It's not clear at all if this functionality belongs in brando, or instead should be implemented by the user, but in some situations detecting unresponsive (but not disconnected!) connections is something that needs to be done.