Revert "Copied changes from remotes/murphymc/no_early_events"

This reverts commit b13fc4e704be9f92ffa3f863e9a3af772dbe1509.
Revert "Finished initial refactoring of handlers."

This reverts commit 4155e9b6d04ff694f2223b82f3c98cea4366ecba.
Revert "Initial commit."

This reverts commit 16e2ac9391f820e83ed0461f46759cec98ba9383.
openflow: Experimental refactor of OF handlers

This is an early experimental refactor of some of of_01 inspired by the
noxrepo/pox#108 issue.  It works well enough to test l2_learning and
l2_pairs with Mininet, but no doubt has bugs (and it definitely breaks
the message handling hook in openflow.nicira).

In short, each connection now has its own handler list.  We now use one
per-connection set of handlers during the handshaking phase, and then
switch to a default set of handlers for the rest of the time (which are
basically the same as the old ones but with the features reply handler
significantly simplified since its functionality is now part of the
handshaking handlers).  One outcome here is that we have to build a
handlers list for each new connection which may be dumb.  We do this
because we keep some state for handshaking.  If we moved that state to
Connection itself, this could be undone (at the expense of putting some
handshaking-only junk into Connection).

There's also a new event which fires when switching to the normal
connected handlers, which could let another component switch a connection's
handlers right then.  It might be nice to do the same thing when the socket
first connects to allow replacing the handshake handlers, but it's not
clear where this event should be sourced since the connection isn't
assigned a nexus yet.  The connection arbiter is one possibility.