[libpng17] Moved redefines of png_error(), png_warning(), png_chunk_error(),

and png_chunk_warning() from pngpriv.h to png.h to make them visible
to libpng-calling applications.
[libpng17] Moved OS dependent code from arm/arm_init.c, to allow the included

implementation of the ARM NEON discovery function to be set at
build-time and provide sample implementations from the current code in the
contrib/arm-neon subdirectory. The __linux__ code has also been changed to
compile and link on Android by using /proc/cpuinfo, and the old linux code
is in contrib/arm-neon/linux-auxv.c.  The new code avoids POSIX and Linux
dependencies apart from opening /proc/cpuinfo and is C90 compliant.
[libpng17] Removed "#define PNG_NO_WARNINGS" from contrib/pngminim/*/pngusr.h

because warnings are already turned off in the *.dfa files.
[libpng17] Deleted a now-redundant #define png_error from pngvalid.c
[libpng17] Check for info_ptr == NULL early in png_read_end() so we don't need

to run all the png_handle_*() and depend on them to return if info_ptr == NULL.
This improves the performance of png_read_end(png_ptr, NULL) and makes
it more robust against future programming errors.
[libpng17] Check for __has_extension before using it in pngconf.h, to

support older Clang versions (Jeremy Sequoia).
[libpng17] Use a user warning handler in contrib/gregbook/readpng2.c instead

of default, so warnings will be put on stderr even if libpng has CONSOLE_IO
disabled.
[libpng17] Added png_ptr->process_mode = PNG_READ_IDAT_MODE in

png_push_read_chunk after recognizing the IDAT chunk, which avoids an
infinite loop while reading a datastream whose first IDAT chunk is of
zero-length.
[libpng17] Document how to use different crc_action after reading the image

data in the sequential reader.