Add support for tunnel interfaces

Look at the interface type in linux to find out whether the interface is
an ethernet interface or not. For now, we will assume that if the interface
type is not ethernet, then it is a tunnel.

Expect network layer header at the beginning of the packet for packets
ingressing the tunnel interface

Allow nexthop creation with zero rewrite strings for encap and tunnel nexthops