Implementation of Gamespy's NAT Negotiation feature

Thank you so much for sharing this code on Github.

I've added support for Gamespy's NAT Negotiation feature, which helps peers establish connections to each other in cases where both are behind routers that do network address translation (NAT). This feature is used by Civilization IV in its multiplayer functionality. See discussion here:
http://realmsbeyond.net/forums/showthread.php?tid=7123