Properly handle tree replacements in the existance checking of the 'mtcc' api.

* subversion/libsvn_client/mtcc.c
  (SVN_PATH_IS_EMPTY): New define. Copied from path.c.
  (mtcc_op_find): Search children backwards to find adds before deletes.
    Properly bail on non directories.
  (get_origin): Return doesn't exist information for new nodes.
  (svn_client_mtcc_get_origin): Rename to...
  (mtcc_get_origin): ... this. Add boolean to define no origin handling.

  (svn_client_mtcc_create): Obtain and store head revision. Verify base
    revision using head revision.
  (mtcc_verify_create): Use standard error messages to ease translation.
  (svn_client_mtcc_add_add_file): Use check in standard form.
  (svn_client_mtcc_add_copy): Verify copy revision using head revision.
  (svn_client_mtcc_add_delete): Use check in standard form, fixing bug.
  (svn_client_mtcc_add_mkdir): Use check in standard form.
  (svn_client_mtcc_add_move): Update caller, asking for error message.
  (svn_client_mtcc_add_propset): Use check in standard form.
  (svn_client_mtcc_check_path): Use check in standard form. Properly
    check for replacements, etc.

* subversion/libsvn_client/mtcc.h
  (MTCC_UNMODIFIED): Handle unmodified file open as unmodified.
  (svn_client_mtcc_t): Add boolean.

* subversion/tests/libsvn_client/mtcc-test.c
  (test_replace_tree): New test.
  (test_funcs): Add test.


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