topo: handler type takes packet_out Pipe

Rather than returning a list of packet_outs, applications now write
them directly to a pipe. This will eliminate a lot of cruft in writing
applications, allow users more finer-grained control over blocking, and
will likely increase the concurrency in the system.
topo: handle PortStatusMsg
topo: Remove LinkDown event

Somewhat redundant given PortDown. It may be the case that in practice
this is useful, in which case when all the topology-related events
should carry with them the topology when the event occurred, so that
applications can do diffing if they need it.
topo: Genereate PortDown events before SwitchDown