Getaddrinfo

I rewrote my patch from the old PR.

Note the change from -std=c99 to -std=gnu99. Using 'c99' causes _POSIX_SOURCE not to be set - that was the cause of the problem before of getaddrinfo not being available without setting that manually.

I'm not sure of any reason to use -std=c99 instead of -std=gnu99; is there anything I'm missing?

This patch lets you bind to hostnames, `*`, and IPv6 addresses.