Issue #20505: Remove resolution and _granularity from selectors and asyncio

* Remove selectors.BaseSelector.resolution attribute
* Remove asyncio.BaseEventLoop._granularity attribute
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py
index b9de8c7..db57ee8 100644
--- a/Lib/asyncio/base_events.py
+++ b/Lib/asyncio/base_events.py
@@ -96,7 +96,6 @@
         self._default_executor = None
         self._internal_fds = 0
         self._running = False
-        self._granularity = time.get_clock_info('monotonic').resolution
 
     def _make_socket_transport(self, sock, protocol, waiter=None, *,
                                extra=None, server=None):
@@ -634,21 +633,11 @@
             else:
                 logger.log(level, 'poll took %.3f seconds', t1-t0)
         else:
-            t0 = self.time()
             event_list = self._selector.select(timeout)
-            dt = self.time() - t0
-            if timeout and not event_list and dt < timeout:
-                print("%s.select(%.3f ms) took %.3f ms (granularity=%.3f ms, resolution=%.3f ms)"
-                      % (self._selector.__class__.__name__,
-                         timeout * 1e3,
-                         dt * 1e3,
-                         self._granularity * 1e3,
-                         self._selector.resolution * 1e3),
-                      file=sys.__stderr__)
         self._process_events(event_list)
 
         # Handle 'later' callbacks that are ready.
-        now = self.time() + self._granularity
+        now = self.time()
         while self._scheduled:
             handle = self._scheduled[0]
             if handle._when > now:
diff --git a/Lib/asyncio/proactor_events.py b/Lib/asyncio/proactor_events.py
index 6b5707c..74566b2 100644
--- a/Lib/asyncio/proactor_events.py
+++ b/Lib/asyncio/proactor_events.py
@@ -365,7 +365,6 @@
         self._selector = proactor   # convenient alias
         self._self_reading_future = None
         self._accept_futures = {}   # socket file descriptor => Future
-        self._granularity = max(proactor.resolution, self._granularity)
         proactor.set_loop(self)
         self._make_self_pipe()
 
diff --git a/Lib/asyncio/selector_events.py b/Lib/asyncio/selector_events.py
index 3690145..202c14b 100644
--- a/Lib/asyncio/selector_events.py
+++ b/Lib/asyncio/selector_events.py
@@ -36,7 +36,6 @@
             selector = selectors.DefaultSelector()
         logger.debug('Using selector: %s', selector.__class__.__name__)
         self._selector = selector
-        self._granularity = max(selector.resolution, self._granularity)
         self._make_self_pipe()
 
     def _make_socket_transport(self, sock, protocol, waiter=None, *,