Add tests to cover repeated setResolverConfiguration

Two tests are added to protect the resolver when it continually
receives the same setup requests.

When the resolver receives repeated and same setup:
[1] Do not clear the cache.
[2] Do not clear the stats (the stats for cleartext DNS servers
    got from GetResolverInfo()).
[3] Do not start a new re-evaluation process for the private DNS
    servers if they have been marked as in_progress.
[4] Need not to re-validate the private DNS servers if they have
    been validated.

Another test is added to protect the implementation of aosp/1108695.

Fix: 150678049
Test: resolv_integration_test passed
Change-Id: I7a866e7e305c0fb703ccb9546d1c70ce77e2d3c7
diff --git a/PrivateDnsConfiguration.cpp b/PrivateDnsConfiguration.cpp
index bfac68a..2263153 100644
--- a/PrivateDnsConfiguration.cpp
+++ b/PrivateDnsConfiguration.cpp
@@ -102,6 +102,10 @@
         mPrivateDnsTransports.erase(netId);
         resolv_stats_set_servers_for_dot(netId, {});
         mPrivateDnsValidateThreads.erase(netId);
+        // TODO: As mPrivateDnsValidateThreads is reset, validation threads which haven't yet
+        // finished are considered outdated. Consider signaling the outdated validation threads to
+        // stop them from updating the state of PrivateDnsConfiguration (possibly disallow them to
+        // report onPrivateDnsValidationEvent).
         return 0;
     }