crashes: reimplement Async_OpenFlowChunk to record livenes

As written previously, the Async_OpenFlowChunk and all controllers based
on it did not monitor the liveness of switch connections. As a result
when a switch disconnects unexpectedly, the controller may not become
aware of that for some time.

The low-level chunk controller has been rewritten to track the various
states of switch connections, as well as activity on that switch.
Activity in this case includes both receiving a message from the switch,
and successfully sending a message to the switch.

As of this commit, switches are marked as idle but no probes are sent
and no connection cleanup happens.