Refactor svn_error_t wrapping in C++HL so that we do not have to expose the
type name in the public API, and simplify memory management.

* subversion/bindings/cxxhl/include/svncxxhl/exception.hpp
  (InternalError::InternalError): Make constructors explicit.
  (InternalError::m_description): Change type to a shared_ptr.
  (Error::Error): Remove public constructors and make constructor explicit.
  (Error::smart_ptr, Error::nested, Error::throw_svn_error,
   Error::m_errno, Error::m_nested): Remove.
  (Error::Message): Make this a nested class instead of using std::pair.
  (Cancelled::Cancelled): Make constructor explicit.
* subversion/bindings/cxxhl/src/cxxhl-private.hpp: New header.
* subversion/bindings/cxxhl/src/private/exception.hpp: New header.
  (detail::checked_call): New prototype. Replaces Error::throw_svn_error.
* subversion/bindings/cxxhl/src/exception.cpp: Refactor InternalError,
   Error and Cancelled implementation. Subversion error stack is now
   represented by chained error descriptions instead of chained
   exception objects.
  (detail::checked_call): Implement.

* subversion/bindings/cxxhl/tests/test_exception.cpp:
   Use new Error::Message and detail::checked_call functions.


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