PORTABILITY: Hurd, Illumos (Fixes #8, #9, #10)

The core of the issue with building on non-GNU/Linux Unix platforms is
redefining **AF_PACKET** or using APIs it indicates exist on platforms where
they are absent.

Hurd has no underlying **AF_PACKET** dependent pieces so **maccopy()** can't
work out of the box on that platform.

Illumos (captured here by **__sun__**) does not define **__GNU__** because it
isn't a GNU platform, but does define **AF_PACKET** and provide compatible
backing APIs.

This represents a merge of two existing works and is not original work on its
own.

Credit for original work:

 - @rmustacc provided Illumos/SmartOS aspects
 - @nomeata provided @sthibaul's Hurd aspects: http://bugs.debian.org/749047