stability-related changes

This pull request includes several changes to make it easer to write stable openflow controllers using the library. These include:

* Not raising certain exceptions in `Stage.t`s related to connections that the user is not yet aware of, but instead logging those exceptions for later debugging if necessary;
* Exposing an API for originating echo requests from the controller for monitoring switch connections;
* Detecting closed connections and raising an exception in `send` calls when that happens (in contrast to the previous behavior in which the resultant `Deferred.t` would never become determined`.