In preparation for resolving #3806, consolidate the tree conflict handling
code in the merge handling.

* subversion/include/private/svn_wc_private.h
  (svn_wc__add_tree_conflict): Document specific error behavior.

* subversion/libsvn_client/merge.c
  (make_conflict_versions): Use scratch/result pool.
  (make_tree_conflict): Remove function. Fold into only caller.
  (tree_conflict): Remove function. Fold into record_tree_conflict.

  (mark_dir_edited,
   mark_file_edited): Update caller.

  (merge_file_changed): Update caller. Reduce lifetime to that of the
    libsvn_wc merge call.
  (merge_file_added): Remove exising conflict case. Handled in merge_file_open.
  (merge_file_deleted): Update caller and comment.

  (merge_dir_changed): Update caller. Reduce lifetime to that of the
    libsvn_wc merge call.

  (merge_dir_deleted): Update caller and add comment.

* subversion/libsvn_wc/tree_conflicts.c
  (svn_wc__add_tree_conflict): Return a less fatal error on this error
    condition. Adding a conflict on top of another conflict is not a
    corruption, but an api-user error.


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