topo: Complete event API

Fill out the rest of the topology events. These have some overlap. For
example, the user will see a PortUp event as well as a LinkUp event
containing the same switch_endpoint. It's up to each application to
decide what level of detail they want to observe, and ignore the rest.
topo: don't use ocaml-openflow topology discovery

Use a custom instance of Network and stop using the topology disocvery
stage from ocaml-openflow.