Implement streamed file contents translation utilities in JavaHL.

[in subversion/bindings/javahl]
* src/org/apache/subversion/javahl/types/NativeInputStream.java,
  src/org/apache/subversion/javahl/types/NativeOutputStream.java:
   New classes. Provide Java-to-native stream translation.

* src/org/apache/subversion/javahl/util/SubstLib.java
  (SubstLib.translateInputStream, SubstLib.translateInputStream):
   Re-declare methods as native.

* native/NativeStream.hpp, native/NativeStream.cpp: New files.
  (JavaHL::NativeInputStream, JavaHL::NativeOutputStream):
   Native bound implementations of the equivalent Java classes.
* native/jniwrapper/jni_io_stream.hpp,
  native/jniwrapper/jni_io_stream.cpp: New files.
  (Java::InputStream, Java::OutputStream): New classes.
   Provide native-to-Java stream translation.

* native/org_apache_subversion_javahl_util_SubstLib.cpp
  (build_keywords_common, translate_stream_common
   KeywordHashBuilder, make_keywords_hash): New helper functions.
  (Java_org_apache_subversion_javahl_util_SubstLib_buildKeywords):
   Reimplement, using build_keywords_common.
  (Java_org_apache_subversion_javahl_util_SubstLib_translateInputStream,
   Java_org_apache_subversion_javahl_util_SubstLib_translateOutputStream):
   SustLib native method implementations.

* tests/org/apache/subversion/javahl/UtilTests.java
  (UtilTests.testTranslateStream): New test case.
  (UtilTests.testBuildKeywords): Tweak test data to match.


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