build+ci: switch to python3

Also in this commit:
 * Sync CI scripts with other projects
 * Upgrade waf to version 2.0.19
 * Modernize docs/conf.py
 * Improve README.md and INSTALL.rst

Refs: #5095
Change-Id: Ic0f4f3be07d7266e57d6565a665eb24a757291e8
diff --git a/docs/doxygen.conf.in b/docs/doxygen.conf.in
index 5ba77c2..aefde0f 100644
--- a/docs/doxygen.conf.in
+++ b/docs/doxygen.conf.in
@@ -623,7 +623,7 @@
 # the documentation.
 # The default value is: YES.
 
-GENERATE_DEPRECATEDLIST= NO
+GENERATE_DEPRECATEDLIST= YES
 
 # The ENABLED_SECTIONS tag can be used to enable conditional documentation
 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
@@ -771,8 +771,7 @@
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = src/ \
-                         tools/
+INPUT                  = src tools
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -1172,7 +1171,7 @@
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-HTML_DYNAMIC_SECTIONS  = NO
+HTML_DYNAMIC_SECTIONS  = YES
 
 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
 # shown in the various tree structured indices initially; the user can expand
@@ -1411,7 +1410,7 @@
 # Minimum value: 0, maximum value: 20, default value: 4.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
-ENUM_VALUES_PER_LINE   = 4
+ENUM_VALUES_PER_LINE   = 1
 
 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
 # to set the initial width (in pixels) of the frame in which the tree is shown.
@@ -2022,10 +2021,10 @@
 # recursively expanded use the := operator instead of the = operator.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
-PREDEFINED             = DOXYGEN=1 \
-                         NDNS_LOG_INIT(x)= \
+PREDEFINED             = DOXYGEN \
                          BOOST_CONCEPT_ASSERT(x)= \
                          BOOST_CONCEPT_REQUIRES(x)= \
+                         NDNS_LOG_INIT(x)= \
                          NDNS_PUBLIC_WITH_TESTS_ELSE_PROTECTED=protected \
                          NDNS_PUBLIC_WITH_TESTS_ELSE_PRIVATE=private \
                          NDNS_PROTECTED_WITH_TESTS_ELSE_PRIVATE=private \
@@ -2399,7 +2398,7 @@
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-DOT_MULTI_TARGETS      = NO
+DOT_MULTI_TARGETS      = YES
 
 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
 # explaining the meaning of the various boxes and arrows in the dot generated