Improve handling of DLT_PFLOG when generating filter code.
Don't rely on the OS's pflog include files to give the pflog header
length; instead, fetch it from the length field of the header, and round
up to a multiple of 4. That way, it'll handle headers for OSes other
than the one for which we're compiling code, and will handle different
header lengths for any given OS if, for example, a new version of the OS
adds more fields to the end.
Don't rely on the OS's pflog include files to define direction types,
reason types, action types, or the layout of the header; instead, define
them ourselves in a header of our own, with #ifs to select the ones that
are only on some platforms. That way, it'll handle some fields and
field values (the ones common to all OSes with pflog) on all OSes, even
ones without pflog.
This should also clean up the FreeBSD build issues reported in #1074, as
we no longer include <net/if_pflog.h>.
(cherry picked from commit
2757ddca53c330c2ba7315e993029b090e8dcb85)