Reconfigure how DHCP works with blip

While the magical #define to use DHCP or a static IP address with blip
still works, now application writers are encouraged to explicitely
declare by what mechanism they would like their application to aquire
an IPv6 address.

To use a static address based on a #define prefix (IN6_PREFIX) add:

    components StaticIPAddressC;

to your application. To use DHCP, add:

    components Dhcp6C;

to your application.

I changed the name from NoDhcpC to StaticIpAddressC because I hope to
implement SLAAC, and in that case there are two alternatives to a static
IP, and a more descriptive name is needed.
Improved pack_address() to better use hdr comp.

RFC6282 allows a node to completely elide the src address of the ipv6
header if the prefix matches the global prefix and the lower 64 bits can
be determined from other parts of the packet. This patch adds that
support by checking to see if the EUI64 that is sent in the 15.4 header
matches the lower 64 bits of the address to be packed.
BLIP: Added UDP checksum recalculation

In the case that a transmitting node sends a UDP packet and uses
stateful address compression, the UDP checksum it calculates is "wrong".
That is, it calculates it when it doesn't know its full address.
Therefore, when its address gets expanded and the UDP packet makes it to
the end host, the checksum is invalid.

This patch checks for when stateful address uncompression is used and
rechecks the checksum in that case.

This patch could be expanded to handle more headers and other checksums,
as well as a check to verify the old checksum is still correct before
creating a new one (on incorrect data at that point).
internal.h error
printf
fixed ntop