add fortified implementations of fread/fwrite

A __size_mul_overflow utility is used to take advantage of the checked
overflow intrinsics in Clang and GCC (>= 5). The fallback for older
compilers is the optimized but less than ideal overflow checking pattern
used in OpenBSD.

Change-Id: Ibb0d4fd9b5acb67983e6a9f46844c2fd444f7e69
diff --git a/libc/libc.map b/libc/libc.map
index ffbd29c..8c3ac9e 100644
--- a/libc/libc.map
+++ b/libc/libc.map
@@ -1334,6 +1334,8 @@
 
 LIBC_N {
   global:
+    __fread_chk;
+    __fwrite_chk;
     getgrgid_r;
     getgrnam_r;
 } LIBC;