DO NOT MERGE Update libpng to 1.6.20

BUG:23265085
Change-Id: I85199805636d771f3597b691b63bc0bf46084833
(cherry picked from commit bbe98b40cda082024b669fa508931042eed18f82)

png_have_neon(png_structp png_ptr)
{
 int fd = open("/proc/self/auxv", O_RDONLY);
 Elf32_auxv_t aux;

 /* Failsafe: failure to open means no NEON */
 if (fd == -1)
 {
      png_warning(png_ptr, "/proc/self/auxv open failed");
 return 0;
 }

 while (safe_read(png_ptr, fd, &aux, sizeof aux) == sizeof aux)
 {
 if (aux.a_type == AT_HWCAP && (aux.a_un.a_val & HWCAP_NEON) != 0)
 {
         close(fd);
 return 1;
 }
 }

   close(fd);
 return 0;
}

png_have_neon(png_structp png_ptr)
{
 int fd = open("/proc/self/auxv", O_RDONLY);
 Elf32_auxv_t aux;

 /* Failsafe: failure to open means no NEON */
 if (fd == -1)
 {
      png_warning(png_ptr, "/proc/self/auxv open failed");
 return 0;
 }

 while (safe_read(png_ptr, fd, &aux, sizeof aux) == sizeof aux)
 {
 if (aux.a_type == AT_HWCAP && (aux.a_un.a_val & HWCAP_NEON) != 0)
 {
         close(fd);
 return 1;
 }
 }

   close(fd);
 return 0;
}
