trans: return an 'e list rather than an e' option
trans: queue packets during handshake for of_10
trans: use a bounded buffer
topo: initial (stub) implementation

This implementation is more or less a minimal placeholder API while the
rest of the topology discovery system's under development. Eventually
this will be replaced by ocaml-topology.
topo: add probe packet

These packets are used to discover switch topology. For every new live
port on a switch (all of them when the switch comes up) a probe packet
will be set out that port. Its payload contains the originating switch
id and port id. The receiving switch will have a rule installed that
will will send packets with the protocol number 0xFA up to the
controller. From that packet in message and the packet payload, the
controller can determine which ports are connected to each other.
topo: implement switch topology discovery
topo: add topology discovery stage to of_10 controller
topo: add logging
topo: add example program to exercise topology discovery
topo: clear pending probes on port removal
host: Make existing Nib.State functions endpoint-specific

Switches and hosts must be treated differently, so give them different
functions. Start by making all the existing functions (that only really
contemplated switches to begin with) specific to switches.
host: make Nib.Protocol handler switch-specific

In preparation for host discovery, make the current handler name
indicate that the functionality is specific to probes and switch
discovery. Host discover will be implemented as a separate handler.
host: implement host discovery

Send ARP packets to the controller and infer from them where hosts are
attached to the network. This system assumes that the entire network is
under the management of the controller.

The implementation does not respond to any ARP requests. It simply
records information contained in them, and forwards the PACKET_IN event
to stage above.
host: add host discovery stage to of_10 controller
Merge pull request #90 from frenetic-lang/trans

Make handshakes more robust
topo: expose topology stage in module interface
host: Expose all topology stages in module interface
tests: Make tests return non-zero status on failure

All the test were being run properly, and failures could be locally
observed by reading console output. However, the travis-ci script was
assuming that the tests would return a non-zero status code on failure,
which was not happening.

In order to correct this, the following line was added to the bottom of
tests/Test.ml:

  Pa_ounit_lib.Runtime.summarize ()

As the name implies, this will summarize the results of the test run and
in addition return a non-zero status if any tests failed.
Merge pull request #98 from frenetic-lang/tests

Make tests return non-zero status on failure
Merge pull request #92 from frenetic-lang/topo

Add support for switch topology discovery