switch PKG_URL to http://gdnsd.org
Cleanup on leading/double blank lines in our source files
restructure doc generation to get manpage titles back

When the MAN_SED stuff was added a while back, it caused pod2man
to start generating internal manpage names like
IO::File=0xdeadbeef because it couldn't see the filename to
translate the name from.  This fixes it by splitting doc
generation steps and using temporary files.
Perl/testsuite/autotools -related general improvements

make-time checks for tools/libs moved to top-level Makefile.am
Perl dependency raised to 5.10.1 (which is still pretty ancient)
Testsuite switched from "perl -MTest::Harness ..." to the "prove"
  command, which is included in Test::Harness 3.17 which is
  included in perl 5.10.1
Some corner-case issues resolved with testsuite daemon exit status
  and/or the valgrind script
The variables PERL, POD2MAN, PROVE, and RAGEL (all AC_PATH_PROG
  sorts of things) now all use AC_ARG_VAR so that they're
  overridable via env vars in place of searching $PATH
Add libtap for TAP-based tests in C

imported from CCAN variant w/ local mods for style/build/etc
Add '# ' as prefix to stdio log messages

Doesn't change things much for users other than being a nice
differentiator between true log output and other random things.
Makes life easier when running code under a TAP harness that uses
the log output functions, as they all get parsed as diagnostics.
Add vscf_scan_buf() (needed for unit test work)

To avoid duplication, vscf_scan_filename() also refactored to map
input file using mmap() and then invoke vscf_scan_buf() instead of
doing iterative read() to a buffer.
Refactor everything about libgdmaps unit tests

* gdnsd_geoip_test split from testsuite directory / build process
  and moved up a couple of directory levels
* Unit test sources switched to TAP output
* Test harness switched from awful trunner.sh script to "prove"
* Primary unit test configs moved inside C sources
* Other unit test config (e.g. nets files, dbs) moved to a single,
  static config dir
* check-download no longer pollutes the source tree
* Several other issues for qa tools resolved in a cleaner fashion
refactor source tree layout

In general, these steps were taken to reduce the depth of the
source tree for humans and for make recursion, improve parallelism
a little, and reduce the number of generated Makefiles.  Some of
this is also with an eye towards possibly eliminating some or all
of the use of recursive make in the future.

1) libdmn folded into libgdnsd
- They're still conceptually separate, but this avoids the annoying
step of copying the header file and all of the Makefile/tools
fallout that causes.  Lately libdmn has not been tracking very
well towards being a separate library anyways, although hopefully
that will reverse course with future refactorings.

2) moved gdnsd/libgdnsd to top level
- There's no good reason to have this as a recursive subdir anymore,
so may as well flatten the hierarchy a bit.  Will help with
dependency ordering issues later as more unit tests are created.

3) moved plugins/meta/libgdmaps to top level
- This is a separate library as well, so flatten it out to the top

4) renamed gdnsd/ to src/
- This eliminates ambiguities for include paths like <gdnsd/foo.h>
between the libgdnsd "public" headers and the private ones for the
main daemon source, which we've only avoided so far by carefully
avoiding naming conflicts.

5) plugins subdirectories merged up to plugins/
- To reduce pointless Makefile recursion
parallelize qa check runs
note buggy cppcheck results w/ 1.66
Bugfix for zero-length strings in vscf

Apparently it's not common in any practical way, but it's
technically legal to have zero-length string values in a vscf
config file, e.g.: foo => ""

Since the allocator changes that were introduced in 2.0.0, our
allocators specifically disallow 0-byte allocations to avoid any
ambiguity about what that means in the standards, and zero-length
strings were generating zero-length allocations.

This fixes it by having the internal raw storage for vscf strings
always be len+1 and setting the final byte to '\0'.  It's simpler
than doing a broader structural fix to support NULL there, and
it's a nice safety valve in case of misuse of the raw value with
functions that expect NUL-termination.
convert rfc1035 scanner to mmap()