Do the worker HB timeout check when HB's are updated

Instead of asking zookeeper for the latest heartbeat data for all topologies and then checking which heartbeats have timed out, combine the timeout check with the heartbeat update.

This makes nimbus more tolerant of a slow zookeeper server, in which case the updating of heartbeats can take so long that by the time the nimbus actually examines the new heartbeats for timeouts, most of the earliest topologies have complete timeouts of executors.