ofproto-dpif: add support for layer 3 ports

Add member is_layer3 to struct ofport_dpif to mark layer 3 ports.  Set
it to "true" for the only layer 3 port we support for now: lisp.

Additionally, prevent flooding to layer 3 ports.  A later patch will
also prevent MAC learning.

This patch could be applied even without the rest of the layer 3
patches, since flooding packets to lisp ports shouldn't happen anyway.
It currently breaks tests 2 and 669, not sure why.
userspace: add support for pop_eth and push_eth actions

These actions will allow L2->L3 and L3->L2 switching
userspace: add layer 3 flow and switching support

This commit relexes the assumption that all packets have an Ethernet
header, and add support for layer 3 flows.  For each packet received on
the linux kernel datapath the l2 and l3 members of struct ofpbuf are
intialized appropriately, and some functions now expect this, in order
to differentiate between layer 2 and layer 3 packets.  struct flow has
now a new 'noeth' member, because we cannot assume that eth_src and
eth_dst being 0 the flow has no Ethernet header.  For layer 3 packets,
the protocol type is still stored in the eth_type member.

Switching L2->L3 and L3->L2 is also implemented, by adding the pop_eth
and push_eth actions respectively when a transition is detected.  The
push_eth action has hardcoded addresses for now, pending ARP resolution
implementation.
datapath: add layer 3 flow/port support

Implementation of the pop_eth and push_eth actions in the kernel, also
layer 3 flow support.  Jesse Gross provided feedback on a previous
version of this RFC patch, all of those comments are resolved here.