Support IPv6-only hosts in vmservice_test.dart. (#12985)

If we fail to bind to IPv4 loopback, try IPv6. Some hosts only support IPv6,
causing the test in vmservice_test.dart to fail, since it couldn't find an
available port.
diff --git a/packages/flutter_tools/lib/src/base/port_scanner.dart b/packages/flutter_tools/lib/src/base/port_scanner.dart
index 58af21d..86cc401 100644
--- a/packages/flutter_tools/lib/src/base/port_scanner.dart
+++ b/packages/flutter_tools/lib/src/base/port_scanner.dart
@@ -61,7 +61,12 @@
 
   @override
   Future<int> findAvailablePort() async {
-    final ServerSocket socket = await ServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0);
+    ServerSocket socket;
+    try {
+      socket = await ServerSocket.bind(InternetAddress.LOOPBACK_IP_V4, 0);
+    } on SocketException {
+      socket = await ServerSocket.bind(InternetAddress.LOOPBACK_IP_V6, 0, v6Only: true);
+    }
     final int port = socket.port;
     await socket.close();
     return port;