Complete rewrite the BIND 9 build system

The rewrite of BIND 9 build system is a large work and cannot be reasonable
split into separate merge requests.  Addition of the automake has a positive
effect on the readability and maintainability of the build system as it is more
declarative, it allows conditional and we are able to drop all of the custom
make code that BIND 9 developed over the years to overcome the deficiencies of
autoconf + custom Makefile.in files.

This squashed commit contains following changes:

- conversion (or rather fresh rewrite) of all Makefile.in files to Makefile.am
  by using automake

- the libtool is now properly integrated with automake (the way we used it
  was rather hackish as the only official way how to use libtool is via
  automake

- the dynamic module loading was rewritten from a custom patchwork to libtool's
  libltdl (which includes the patchwork to support module loading on different
  systems internally)

- conversion of the unit test executor from kyua to automake parallel driver

- conversion of the system test executor from custom make/shell to automake
  parallel driver

- cleanups of configure.ac script to make it more simpler, addition of multiple
  macros (there's still work to be done though)

- the tarball can now be prepared with `make dist`

- the system tests are partly able to run in oot build

Here's a list of unfinished work that needs to be completed in subsequent merge
requests:

- `make distcheck` doesn't yet work (because of system tests oot run is not yet
  finished)

- documentation is not yet built, there's a different merge request with docbook
  to sphinx-build rst conversion that needs to be rebased and adapted on top of
  the automake

- msvc build is non functional yet and we need to decide whether we will just
  cross-compile bind9 using mingw-w64 or fix the msvc build

- contributed dlz modules are not included neither in the autoconf nor automake
75 jobs for !985 with 4-convert-to-modern-autotools-autoconf-automake-libtool in 34 minutes and 27 seconds (queued for 24 minutes and 19 seconds)
detached
Status Job ID Name Coverage
  Autoconf
passed #785123
amd64 linux
autoreconf

00:00:43

 
  Precheck
passed #785125
amd64 linux
clang-format

00:00:27

passed #785126
amd64 linux
coccinelle

00:04:34

passed #785124
amd64 linux
misc

00:00:20

 
  Build
passed #785142
amd64 linux
clang:asan

00:03:18

passed #785146
amd64 linux
clang:buster:amd64

00:02:04

passed #785148
amd64 libvirt
clang:freebsd11.3:amd64

00:01:05

passed #785149
amd64 libvirt
clang:freebsd12.1:amd64

00:01:12

passed #785150
amd64 libvirt
clang:openbsd6.6:amd64

00:02:32

passed #785144
amd64 linux
clang:tsan

00:02:02

passed #785127
amd64 linux
gcc:alpine3.11:amd64

00:01:52

passed #785141
amd64 linux
gcc:asan

00:02:39

passed #785140
amd64 linux
gcc:bionic:amd64

00:01:26

passed #785132
amd64 linux
gcc:buster:amd64

00:01:50

passed #785128
amd64 linux
gcc:centos6:amd64

00:01:20

passed #785129
amd64 linux
gcc:centos7:amd64

00:01:33

passed #785130
amd64 linux
gcc:centos8:amd64

00:01:36

passed #785138
amd64 linux
gcc:fedora31:amd64

00:01:23

passed #785133
amd64 linux
gcc:sid:amd64

00:01:59

passed #785135
arm64 linux
gcc:sid:arm64

00:03:08

passed #785136
i386 linux
gcc:sid:i386

00:01:43

passed #785131
amd64 linux
gcc:stretch:amd64

00:01:47

passed #785143
amd64 linux
gcc:tsan

00:02:20

passed #785137
amd64 linux
gcc:tumbleweed:amd64

00:01:31

passed #785139
amd64 linux
gcc:xenial:amd64

00:01:42

passed #785145
amd64 linux
mutexatomics

00:01:28

passed #785134
amd64 linux
out-of-tree

00:01:25

passed #785147
amd64 linux
pkcs11

00:01:29

 
  Unit
passed #785165
amd64 linux
unit:clang:asan

00:03:43

passed #785169
amd64 linux
unit:clang:buster:amd64

00:01:16

passed #785171
amd64 libvirt
unit:clang:freebsd11.3:amd64

00:01:53

passed #785172
amd64 libvirt
unit:clang:freebsd12.1:amd64

00:01:37

failed #785167
amd64 linux allowed to fail
unit:clang:tsan

00:05:23

passed #785151
amd64 linux
unit:gcc:alpine3.11:amd64

00:01:52

passed #785164
amd64 linux
unit:gcc:asan

00:03:41

passed #785163
amd64 linux
unit:gcc:bionic:amd64

00:01:26

passed #785156
amd64 linux
unit:gcc:buster:amd64

00:01:27

passed #785152
amd64 linux
unit:gcc:centos6:amd64

00:01:57

passed #785153
amd64 linux
unit:gcc:centos7:amd64

00:02:10

passed #785154
amd64 linux
unit:gcc:centos8:amd64

00:01:14

passed #785161
amd64 linux
unit:gcc:fedora31:amd64

00:01:37

passed #785157
amd64 linux
unit:gcc:sid:amd64

00:01:32

passed #785158
arm64 linux
unit:gcc:sid:arm64

00:02:08

passed #785159
i386 linux
unit:gcc:sid:i386

00:01:32

passed #785155
amd64 linux
unit:gcc:stretch:amd64

00:01:41

failed #785166
amd64 linux allowed to fail
unit:gcc:tsan

00:06:48

passed #785160
amd64 linux
unit:gcc:tumbleweed:amd64

00:02:00

passed #785162
amd64 linux
unit:gcc:xenial:amd64

00:02:02

passed #785168
amd64 linux
unit:mutexatomics

00:01:31

passed #785170
amd64 linux
unit:pkcs11

00:02:10

 
  System
passed #785187
amd64 linux
system:clang:asan

00:12:33

passed #785191
amd64 linux
system:clang:buster:amd64

00:10:12

passed #785193
amd64 libvirt
system:clang:freebsd11.3:amd64

00:00:30

passed #785194
amd64 libvirt
system:clang:freebsd12.1:amd64

00:00:31

passed #785189
amd64 linux
system:clang:tsan

00:14:28

passed #785173
amd64 linux
system:gcc:alpine3.11:amd64

00:11:24

passed #785186
amd64 linux
system:gcc:asan

00:12:49

passed #785185
amd64 linux
system:gcc:bionic:amd64

00:10:08

passed #785178
amd64 linux
system:gcc:buster:amd64

00:11:45

passed #785174
amd64 linux
system:gcc:centos6:amd64

00:10:46

passed #785175
amd64 linux
system:gcc:centos7:amd64

00:10:54

passed #785176
amd64 linux
system:gcc:centos8:amd64

00:10:59

passed #785183
amd64 linux
system:gcc:fedora31:amd64

00:10:51

passed #785179
amd64 linux
system:gcc:sid:amd64

00:10:42

passed #785180
arm64 linux
system:gcc:sid:arm64

00:10:55

passed #785181
i386 linux
system:gcc:sid:i386

00:10:48

passed #785177
amd64 linux
system:gcc:stretch:amd64

00:10:11

passed #785188
amd64 linux
system:gcc:tsan

00:13:03

passed #785182
amd64 linux
system:gcc:tumbleweed:amd64

00:10:37

passed #785184
amd64 linux
system:gcc:xenial:amd64

00:09:55

passed #785190
amd64 linux
system:mutexatomics

00:10:25

passed #785192
amd64 linux
system:pkcs11

00:10:46

 
  Docs
failed #785195
amd64 linux allowed to fail
docs

00:00:38

 
  Postcheck
passed #785197
amd64 linux
cppcheck

00:01:47

passed #785196
amd64 linux
scan-build

00:06:17

 
Name Stage Failure
failed
unit:gcc:tsan Unit
$ find lib -name 'tsan.*' -exec python3 util/parse_tsan.py {} \;
Uploading artifacts...
lib/*/tests/tsan.*: found 1 matching files
tsan/: found 4 matching files

WARNING: kyua.log: no matching files
WARNING: kyua.results: no matching files
WARNING: kyua_html/: no matching files
Uploading artifacts to coordinator... ok
id=785166 responseStatus=201 Created token=jowCp2Zt
ERROR: Job failed: exit code 1
failed
unit:clang:tsan Unit
$ find lib -name 'tsan.*' -exec python3 util/parse_tsan.py {} \;
Uploading artifacts...
lib/*/tests/tsan.*: found 1 matching files
tsan/: found 4 matching files

WARNING: kyua.log: no matching files
WARNING: kyua.results: no matching files
WARNING: kyua_html/: no matching files
Uploading artifacts to coordinator... ok
id=785167 responseStatus=201 Created token=YUKWLkxd
ERROR: Job failed: exit code 1
failed
docs Docs
    
-------------------------------------------------------------------------------
For more detail, use --enable-full-report.
===============================================================================
$ make -C doc/misc docbook
make: *** No rule to make target 'docbook'. Stop.
make: Entering directory '/builds/isc-projects/bind9/doc/misc'
make: Leaving directory '/builds/isc-projects/bind9/doc/misc'
ERROR: Job failed: exit code 1