asyncio: Fix getaddrinfo to accept None/str/bytes for 'port' arg

Patch by A. Jesse Jiryu Davis.
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py
index 313cc31..e5e9394 100644
--- a/Lib/asyncio/base_events.py
+++ b/Lib/asyncio/base_events.py
@@ -102,6 +102,11 @@
     else:
         return None
 
+    if port in {None, ''}:
+        port = 0
+    elif isinstance(port, (bytes, str)):
+        port = int(port)
+
     if hasattr(socket, 'inet_pton'):
         if family == socket.AF_UNSPEC:
             afs = [socket.AF_INET, socket.AF_INET6]