Speed up file / stream comparison, i.e. minimize the processing overhead
for finding the first mismatch.

The approach is two-sided.  Instead of fetching SVN__STREAM_CHUNK_SIZE
from all sources before comparing data, we start with a much lower 4kB
and increase the chunk size until we reach SVN__STREAM_CHUNK_SIZE while
making sure that all reads are naturally aligned.  So, we quickly find
mismatches near the beginning of the file.

On the other end side, we bump the SVN__STREAM_CHUNK_SIZE to 64kB which
gives better throughput for longer distances to the first mismatch -
without causing ill effects in APR's memory management.

* subversion/include/svn_types.h
  (SVN__STREAM_CHUNK_SIZE): Bump to 64k and add some documentation on
                            the general restrictions for future changes.

* subversion/include/private/svn_io_private.h
  (svn_io__next_chunk_size): New utility function generating the new
                             read block size sequence.

* subversion/libsvn_subr/io.c
  (svn_io__next_chunk_size): Implement.
  (contents_identical_p,
   contents_three_identical_p): Let the new utility determine the read
                                block size.

* subversion/libsvn_subr/stream.c
  (svn_stream_contents_same2): Ditto.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1586922 13f79535-47bb-0310-9956-ffa450edef68