- Improved gcc detection based on experience on Ubuntu.

- Reenabled -Wno-unused-but-set-variable compiler flag for gcc builds.

- Fixed library ordering for example program builds.
Fixed libuinet library dependencies for Linux.
Fixed up sysctl api routine parameter names for consistency and
avoidance of compiler error shenanigans when building with g++.
Fix up net/if.h vs. linux/if.h include issues on Linux such that
current netmap code is happy.
Expose required types under Linux.
Cleanup sample programs, removing unneeded (and nonportable) pthread_t
initializations and updating calls to uinet_interface_up().
Add missing propagation of l2info to so_l2info in syncache_socket and
syncache_passive_client_socket().  so_l2info really needs to go away,
and at some point it will.
The call to uhi_mmap() in uinet_vm_kern.c:kem_malloc() was not
specifying UHI_MAP_SHARED nor UHI_MAP_PRIVATE, leading to failure on
at least Ubuntu 12.04.  It now properly specifies UHI_MAP_PRIVATE.
In uinet_if_netmap_host.c, use a socket for SIOCETHTOOL on Linux, as netmap doesn't pass that ioctl through.  Also, fix indirection bug in SIOCETHTOOL ioctls.