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

- The GSSAPI has been refactored, the custom SPNEGO on the basis that
  all major KRB5/GSSAPI (mit-krb5, heimdal and Windows) implementations
  support SPNEGO mechanism.

- The various defunct tests from bin/tests have been removed:
  bin/tests/optional and bin/tests/pkcs11

- The text files generated from the MD files have been removed, the
  MarkDown has been designed to be readable by both humans and computers

- The xsl header is now generated by a simple sed command instead of
  perl helper

- The <irs/platform.h> header has been removed

- 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 partially 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
77 jobs for !985 with 4-convert-to-modern-autotools-autoconf-automake-libtool in 24 minutes and 15 seconds (queued for 5 minutes and 25 seconds)
detached
Status Job ID Name Coverage
  Autoconf
passed #835259
amd64 linux
autoreconf

00:00:19

 
  Precheck
passed #835261
amd64 linux
clang-format

00:00:22

passed #835262
amd64 linux
coccinelle

00:03:41

passed #835260
amd64 linux
misc

00:00:16

 
  Build
passed #835278
amd64 linux
clang:asan

00:01:06

passed #835282
amd64 linux
clang:buster:amd64

00:01:12

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

00:01:15

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

00:01:16

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

00:03:27

passed #835280
amd64 linux
clang:tsan

00:01:35

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

00:00:56

passed #835277
amd64 linux
gcc:asan

00:02:08

passed #835276
amd64 linux
gcc:bionic:amd64

00:01:03

passed #835268
amd64 linux
gcc:buster:amd64

00:00:48

passed #835264
amd64 linux
gcc:centos6:amd64

00:00:51

passed #835265
amd64 linux
gcc:centos7:amd64

00:00:51

passed #835266
amd64 linux
gcc:centos8:amd64

00:00:56

passed #835274
amd64 linux
gcc:fedora31:amd64

00:00:56

passed #835281
amd64 linux
gcc:mutexatomics

00:00:42

passed #835270
amd64 linux
gcc:out-of-tree

00:00:40

passed #835283
amd64 linux
gcc:pkcs11

00:01:07

passed #835269
amd64 linux
gcc:sid:amd64

00:01:07

passed #835271
arm64 linux
gcc:sid:arm64

00:02:42

passed #835272
i386 linux
gcc:sid:i386

00:00:39

passed #835267
amd64 linux
gcc:stretch:amd64

00:01:01

passed #835279
amd64 linux
gcc:tsan

00:01:30

passed #835273
amd64 linux
gcc:tumbleweed:amd64

00:00:53

passed #835275
amd64 linux
gcc:xenial:amd64

00:00:50

 
  Unit
passed #835301
amd64 linux
unit:clang:asan

00:02:41

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

00:01:08

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

00:01:55

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

00:01:38

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

00:00:28

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

00:01:37

passed #835300
amd64 linux
unit:gcc:asan

00:02:39

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

00:01:32

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

00:01:33

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

00:01:32

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

00:01:27

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

00:01:28

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

00:01:35

passed #835304
amd64 linux
unit:gcc:mutexatomics

00:00:59

passed #835306
amd64 linux
unit:gcc:pkcs11

00:00:58

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

00:01:34

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

00:02:43

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

00:01:10

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

00:01:37

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

00:05:52

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

00:01:26

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

00:01:41

 
  System
passed #835323
amd64 linux
system:clang:asan

00:11:59

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

00:10:47

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

00:00:31

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

00:00:31

passed #835325
amd64 linux
system:clang:tsan

00:05:54

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

00:11:28

passed #835322
amd64 linux
system:gcc:asan

00:12:17

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

00:10:26

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

00:11:08

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

00:10:45

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

00:11:19

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

00:12:30

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

00:11:01

passed #835326
amd64 linux
system:gcc:mutexatomics

00:09:34

passed #835328
amd64 linux
system:gcc:pkcs11

00:11:17

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

00:10:46

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

00:11:59

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

00:11:12

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

00:09:45

passed #835324
amd64 linux
system:gcc:tsan

00:14:17

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

00:10:37

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

00:09:54

 
  Docs
failed #835331
amd64 linux allowed to fail
docs

00:00:22

 
  Postcheck
passed #835335
amd64 linux
cppcheck

00:00:49

passed #835332
amd64 linux
flake8

00:02:23

passed #835333
amd64 linux
pylint

00:02:26

passed #835334
amd64 linux
scan-build

00:05:15

 
Name Stage Failure
failed
unit:gcc:tsan Unit
No job log
failed
docs Docs
No job log
failed
unit:clang:tsan Unit
No job log