_FILE_OFFSET_BITS=64 support for fcntl.

On Android, fcntl is always implemented by fcntl64(2). This means that
an LP32 binary can `fcntl(F_SETLK, struct flock)` (because fcntl64(2)
passes through to the 32-bit fcntl(2) to handle F_SETLK), and it can
also `fcntl(F_SETLK64, struct flock64)`. What it can't do before this
patch is set _FILE_OFFSET_BITS=64 and then `fcntl(F_SETLK, struct
flock)` where that `struct flock` is actually implicitly `struct
flock64`.

Move the kernel uapi structs out of the way, define them ourselves based
on __LP64__ and _FILE_OFFSET_BITS, and fix up the relevant F_ constants.

(Also add a .clang-format to turn off clang-format in libc/include/.)

Bug: N/A
Test: treehugger (and strace!)
Change-Id: Iccd6c83d9133e1efcf93a7b49a6ae0f1bbd3d58b
diff --git a/tests/fcntl_test.cpp b/tests/fcntl_test.cpp
index d7dce31..a8a4cc5 100644
--- a/tests/fcntl_test.cpp
+++ b/tests/fcntl_test.cpp
@@ -148,6 +148,20 @@
   ASSERT_EQ(4, sb.st_size);
 }
 
+TEST(fcntl, f_getlk) {
+  int fd = open("/proc/version", O_RDONLY);
+  ASSERT_TRUE(fd != -1);
+
+  struct flock check_lock;
+  check_lock.l_type = F_WRLCK;
+  check_lock.l_start = 0;
+  check_lock.l_whence = SEEK_SET;
+  check_lock.l_len = 0;
+
+  ASSERT_EQ(0, fcntl(fd, F_GETLK, &check_lock));
+  close(fd);
+}
+
 TEST(fcntl, f_getlk64) {
   int fd = open64("/proc/version", O_RDONLY);
   ASSERT_TRUE(fd != -1);
@@ -158,9 +172,7 @@
   check_lock.l_whence = SEEK_SET;
   check_lock.l_len = 0;
 
-  int rc = fcntl(fd, F_GETLK64, &check_lock);
-  ASSERT_EQ(0, rc);
-
+  ASSERT_EQ(0, fcntl(fd, F_GETLK64, &check_lock));
   close(fd);
 }