multi: keep track of xids in ChunkController

The ChunkController keeps track of a per-connection xid that users can
use to generate new xids.
multi: only report usable ports in switch features

The abstraction layer does not expose any of the data structures
necessary for the user to determine whether or not a port is live or
not. The abstraciton layer therefore needs to make this determination
for the user by filtering ports in the initial feature request, and
surfacing events when ports come up or down.
v0.6.1
log: Update to use core/async.111.28.00 logging API

As of core/async.111.25.00, `Log.of_lazy` is no longer part of package's
public API. In 111.28.00, the `Log.level` call was allowing users of the
package to implement `of_lazy` without to manage the log level manually.
In addition, new optional arguments were introduced along with a
`Log.string` call. This is all now part of the public API of the
Async_OpenFlow module.

Closes #148.
Merge pull request #171 from frenetic-lang/log

Update logging to use core/async.111.28.00 logging API
v0.6.2
    Fix bug in IP wildcarding.

    According to the OpenFlow specification, the mask on nw_src and nw_dst
    fields is not a description of how many bits to match, but rather a
    description of how many bits to mask. Hence, /0 is exact match and /32
    is a total wildcard.

    We had this backwards in the OpenFlow0x01 controller.

    This pull requests fixes the bug.
Remove trailing whitespace, break long lines, remove other spurious whitespace
trivial whitespace edits
Merge pull request #172 from frenetic-lang/mask-more-bugfix

    Fix bug in IP wildcarding.
multi: expose functions for message types

Rather than exposing low-level operations to send messages and deal with
xids, provide an async-based fucntion interface for dealing with those
methods. Currently suppor send_pkt_out and barrier.
Merge branch 'master' into multi

Conflicts:
	setup.ml