Packet Forwarding Functionality (WIP)

This is a re-add of some older work I did here. I'll document it better
once I understand what's going on and have more tests for this.

At first glance it appears the code is heavily optimized for not copying
input buffers, but we might want to simplify it. The IOV read stuff is
really cool though, so it'd be nice if we could stash it somewhere.

Change-Id: Ic51e034b29a456a596e633ecbc213c4cfcadecaa