misc.nat: Clean up and improve

I'd oversimplified some of the code I drew this from resulting in flows
getting stuck when the inside was quiet.  The old code was pretty bad
anyway, so this rewrites it all to hopefully be a bit cleaner.

Also fixes an issue where we were telling hosts inconsistent things about
our MAC address.
README: Slight clarification
libopenflow: Improve flow_mod packing

First, this inserts a log statement where we'd wanted one before but
wasn't possible until we recently got logging in libopenflow finally.

Secondly, when using the .data attribute, we no longer transform it into
a .buffer_id, since this could lead to slightly surprising results if the
user wasn't expecting it.