miniupnpd: detect port in use / already forwarded

Patch submitted by David Kerr
Merge branch 'master' into portinuse

Conflicts:
	README
Merge branch 'master' into portinuse
Merge remote branch 'origin/master' into portinuse

Conflicts:
	miniupnpd/Makefile.linux
	miniupnpd/natpmp.c
miniupnpd: add CHECK_PORTINUSE to enable/disable port_in_use()
miniupnpd/portinuse.c/iptcrdr.c: cosmetic changes
miniupnpd/portinuse.c: add #ifdef __linux__

TODO : BSD Code
miniupnpd: add testportinuse test program
miniupnpd: add port_in_use() implementation for OpenBSD
miniupnpd/testasyncsendto.c: remove warning if struct timeval fields are not long int
miniupnpd/Makefile.macosx: update for testasyncsendto and testportinuse
miniupnpd/portinuse.c: Add DragonFly BSD implementation

Thanks to YONETANI Tomokazu.
miniupnpd/portinuse: port_in_use() returns -1 in case of error
miniupnpd/portinuse.c: Improve error handling in DragonFly BSD code
miniupnpd/portinuse: cleanup
Merge branch 'portinuse'

Conflicts:
	miniupnpd/Makefile.linux
miniupnpd/testportinuse.c: fix compilation with CHECK_PORTINUSE undefined