openflow: Add dpid attribute to remaining events

I think all OpenFlow events now have a dpid attribute/property.
of_01: Fix typo/exception in PortCollection
libopenflow: Add logging

It has long been an annoying issue that there was no logging in
libopenflow.  We didn't want to add it because in theory it should just
be for packing/unpacking.  We need have sort of optional logging -- an
external module can set a logger which will be used inside.

Additionally, we now set up such an additional logger in of_01.
libopenflow: Add some prereq awareness to matches

This is a sort of experimental patch.  It adds the fix() method to
of_match, which unsets fields which are unmatchable due to missing match
prerequisites.  See S3.4 in the OpenFlow 1.0.1 spec.

We currently do not call fix() be default, though we might some day.

This also a warning when prerequisites are not met, though this is only
shown when assertions are enabled.
libopenflow: Remove optimize()

This should now be handled by the combination of fix() and the wire
wildcarding.
libopenflow: Allow setting in_port in flip()

It's often the case that you want to unset the inport or set it to
something different.  This makes it easier to do so.  It's possible that
we should unset it by default (default value = None).
ip_loadbalancer: Fix odd typo in docstring
discovery: Make Link a class

This used to be a plain namedtuple, but now it extends namedtuple.
pox.py: Enable assertions

We now enable assertions even for pox.py, not just debug-pox.py.

Decision subject to change...