asyncio: sync with Tulip

* Fix a race condition in BaseSubprocessTransport._try_finish().

  If the process exited before the _post_init() method was called, scheduling
  the call to _call_connection_lost() with call_soon() is wrong:
  connection_made() must be called before connection_lost().

  Reuse the BaseSubprocessTransport._call() method to schedule the call to
  _call_connection_lost() to ensure that connection_made() and
  connection_lost() are called in the correct order.

* Add repr(PipeHandle)

* Fix typo
diff --git a/Lib/asyncio/windows_events.py b/Lib/asyncio/windows_events.py
index 6763f0b..0773d06 100644
--- a/Lib/asyncio/windows_events.py
+++ b/Lib/asyncio/windows_events.py
@@ -402,7 +402,7 @@
             ov.getresult()
             return pipe
 
-        # FIXME: Tulip issue 196: why to we neeed register=False?
+        # FIXME: Tulip issue 196: why do we need register=False?
         # See also the comment in the _register() method
         return self._register(ov, pipe, finish_accept_pipe,
                               register=False)