asyncio: sync with Tulip

* Remove unused SSLProtocol._closing attribute
* test_sslproto: skip test if ssl module is missing
* Python issue #23208: Don't use the traceback of the current handle if we
  already know the traceback of the source. The handle may be more revelant,
  but having 3 tracebacks (handle, source, exception) becomes more difficult to
  read. The handle may be preferred later but it requires more work to make
  this choice.
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py
index 1c51a7c..e40d3ad 100644
--- a/Lib/asyncio/base_events.py
+++ b/Lib/asyncio/base_events.py
@@ -956,7 +956,8 @@
         else:
             exc_info = False
 
-        if (self._current_handle is not None
+        if ('source_traceback' not in context
+        and self._current_handle is not None
         and self._current_handle._source_traceback):
             context['handle_traceback'] = self._current_handle._source_traceback
 
diff --git a/Lib/asyncio/sslproto.py b/Lib/asyncio/sslproto.py
index 117dc56..f2b856c 100644
--- a/Lib/asyncio/sslproto.py
+++ b/Lib/asyncio/sslproto.py
@@ -408,7 +408,6 @@
         self._write_buffer_size = 0
 
         self._waiter = waiter
-        self._closing = False
         self._loop = loop
         self._app_protocol = app_protocol
         self._app_transport = _SSLProtocolTransport(self._loop,
diff --git a/Lib/test/test_asyncio/test_sslproto.py b/Lib/test/test_asyncio/test_sslproto.py
index 812dedb..b1a61c4 100644
--- a/Lib/test/test_asyncio/test_sslproto.py
+++ b/Lib/test/test_asyncio/test_sslproto.py
@@ -2,6 +2,10 @@
 
 import unittest
 from unittest import mock
+try:
+    import ssl
+except ImportError:
+    ssl = None
 
 import asyncio
 from asyncio import sslproto
@@ -14,6 +18,7 @@
         self.loop = asyncio.new_event_loop()
         self.set_event_loop(self.loop)
 
+    @unittest.skipIf(ssl is None, 'No ssl module')
     def test_cancel_handshake(self):
         # Python issue #23197: cancelling an handshake must not raise an
         # exception or log an error, even if the handshake failed