crashes: Add safe/unsafe api for client/switch id lookup
crashes: refactor code, add asserts
crashes: make send fail on client disconnects

Writer.flushed w will not become determined if there is a write error,
which will cause the controller to hang unless every send is checked to
make sure the client is still alive first.
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.
crashes: remove println debugging
crashes: expose send_ignore_errors

This is part of the typed_tcp interface that was previously hidden, but
in fact needs to be exposed in order properly do connection liveness
checking.
crashes: remove ensure function from ChunkController API

This function encourages bad error handling, and isn't used in many
places anyways.
crashes: change exception to assertion

The platform does not use the underlying authentication features of
typed_tcp.
crashes: swallow exceptions in stages

See code comments for rationale.
crashes: don't remove connections from table on close
crashes: probe and kill idle switches

As part of the Chunk Controller, three separate logical threads will
occasionally monitor switch connections. One will mark it as idle when
no activity has been recorded for some time. The second, will probe
switch connections with an echo request after some additional time of
inactivity. The third will then kill switch connections that have not
responded to the echo request in some period of time.
crashes: add monitor wait time Chunk.Controller.t
crashes: eliminiate probe state, make waits configurable

The intermediate probe state served little purpose besides providing a
way of indicating to the user that a probe was imminent. For now, remove
the intermediate state and immediately probe the connection once it's
identified as idle.
crashes: configure monitoring threads in OF0x01 controller
crashes: make connection monitoring configurable
Merge pull request #139 from frenetic-lang/crashes

stability-related changes