Add a utility API to parse and unparse svn:externals definitions to JavaHL.

[in subversion/bindings/javahl/src/org/apache/subversion/javahl]
* SVNUtil.java (SVNUtil.parseExternals): New static method.
  (SVNUtil.unparseExternals): Likewise.
  (SVNUtil.unparseExternalsForAncientUnsupportedClients): Likewise.
* types/ExternalItem.java (ExternalItem): New class.
* types/Revision.java (Revision.DateSpec.DateSpec): New private constructor.
   Creates a dated revision from a timestamp in milliseconds.
 * util/PropLib.java
   (PropLib.parseExternals, PropLib.unparseExternals): Declare native methods.

[in subversion/bindings/javahl/native]
* Revision.h (Revision::makeJRevision): New overload.
* ExternalItem.hpp, ExternalItem.cpp: New-style object wrappers for
   types.ExternalItem.
* ExternalItem.cpp (Revision::makeJRevision): New-style implementation
   of the new overload. Located here until the old-style Revision
   implementation can be ported to jniwrapper.

* org_apache_subversion_javahl_util_PropLib.cpp: Include the required
   new-style headers for the new method implementations.
  (FormatRevision): Helper object for formating revisions to std::ostream.
  (operator<<): Stream insertion operator for FormatRevision.
  (Java_org_apache_subversion_javahl_util_PropLib_parseExternals):
   Boilerplate native implementation of PropLib.parseExternals.
  (Java_org_apache_subversion_javahl_util_PropLib_unparseExternals):
   Native implementation of PropLib.unparseExternals.

[in subversion/bindings/javahl/tests/org/apache/subversion/javahl]
* UtilTests.java
  (UtilTests.externals, UtilTests.old_externals): New private members.
  (UtilTests.testUnparseExternals,
  (UtilTests.testUnparseExternalsOldstyle): New test cases.


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