Fix ztree_txn_* API to work

ztree_clone() sets ztclone->zones to valid pointer even where
it was NULL in the original ztree. This happens since malloc(0)
returns always valid pointer. This confuses _ztree_update() and
various other places as in several cases ->zones is tested
instead of ->zones_len.

Fix ztree_clone() to keep ->zones as NULL if the original had
it as NULL.
Impelement loading of DJBDNS zone files
Merge pull request #53 from fabled/djbdns-support

Djbdns support
Merge branch 'master' into dev
Refactor testsuite test data dir create/populate, add djbdns

Now always wipes out the specific testout dir, and creates
  and populates the etc/zones and etc/djbdns directories iff
  they exist for the test
add etc/djbdns to list of paths created in chroot-mode
Very basic djbdns test

Just to serve as a test of testing, feel free to delete when
  replacing with better tests.
Merge branch 'master' into dev
Merge branch 'master' into dev
update djbdns tests for new structure
Merge branch 'master' into dev
Merge branch 'master' into dev
Merge branch 'master' into dev
Merge branch 'master' into dev
Merge branch 'master' into dev
DYNC RR: plugin can return address or CNAME data

DYNC is now upgraded such that it can return address
  or CNAME data dynamically.  DYNA remains unchanged;
  it can only return addresses.

DYNC retains its current restrictions (cannot co-exist
  with any other RR, and therefore cannot be used at a
  zone root), while DYNA allows dynamic address-only
  responses alongside other, static RRs and/or at the
  root of a zone.  Commonly, any plugin resource that
  can be used for DYNA can also be used directly
  for (or as a metaplugin component for) DYNC, as
  they share the same basic call path and differ
  only in their restrictions on the results.

For now, CNAMEs still do not have any status information
  and never 'fail', and therefore the only useful case
  is to place a datacenter mapped to a CNAME as the final
  datacenter in a metafo or geoip failover list, as a
  last-resort option when all address-based resources
  fail.  Any addresses which come after a CNAME in a
  failover list would simply never be returned.  This
  will be addressed with future work to allow admins
  to force up/down states on "things" (CNAMEs, monitored
  addrs, and higher-level aggregates).

The weighted plugin's user-level configuration has changed
  in a backwards-incompatible way as necessitated by
  these changes: 'cnames' can no longer be specified
  alongside 'addrs_v4' or 'addrs_v6' in the same resource
  (deprecated earlier in master).

The plugin API has changed substantially and is also not
  backwards-compatible with older versions.

This commit/branch probably shouldn't merge until 2.x due
  to the changes above.
doc bugfixes
Merge branch 'master' into dev

Conflicts:
	gdnsd/Makefile.am
Merge branch 'master' into dync_addr
cfg errorchecking fixups in meta_core