Import sys/types.h for ssize_t

Previously the header file generated for the following bridge did not
compile.

    #[cxx::bridge]
    mod ffi {
        struct S {
            x: isize,
        }
    }

    example-ecfac19134395bcc/out/cxxbridge/sources/example/src/main.rs.cc:15:15: error: ‘ssize_t’ does not name a type
       15 | using isize = ssize_t;
          |               ^~~~~~~
    example-ecfac19134395bcc/out/cxxbridge/sources/example/src/main.rs.cc:26:11: error: ‘isize’ in namespace ‘rust’ does not name a type
       26 |   ::rust::isize x;
          |           ^~~~~
diff --git a/gen/src/include.rs b/gen/src/include.rs
index 3a0d66b..6b7e580 100644
--- a/gen/src/include.rs
+++ b/gen/src/include.rs
@@ -37,6 +37,7 @@
     pub utility: bool,
     pub vector: bool,
     pub basetsd: bool,
+    pub sys_types: bool,
     pub content: Content<'a>,
 }
 
@@ -88,6 +89,7 @@
         utility,
         vector,
         basetsd,
+        sys_types,
         content: _,
     } = *include;
 
@@ -139,6 +141,18 @@
     if basetsd {
         writeln!(out, "#if defined(_WIN32)");
         writeln!(out, "#include <basetsd.h>");
+    }
+    if sys_types {
+        if basetsd {
+            writeln!(out, "#else");
+        } else {
+            writeln!(out, "#if not defined(_WIN32)");
+        }
+    }
+    if sys_types {
+        writeln!(out, "#include <sys/types.h>");
+    }
+    if basetsd || sys_types {
         writeln!(out, "#endif");
     }
 }