Record the update/switch target revision for missing tree conflicts
victims in the tree conflict description so the revision can always
be retrieved during conflict resolution.

For instance, 'svn info' might show:

Tree conflict: local file edit, incoming file delete or move upon update
  Source  left: (file) ^/trunk/alpha@2
  Source right: (none)

With this change, 'svn info' shows the target revision ("source right')
of the update/switch which recorded the conflict, even if the node
was missing:

Tree conflict: local file edit, incoming file delete or move upon update
  Source  left: (file) ^/trunk/alpha@2
  Source right: (none) @4

There is a slight API change involved which shouldn't affect compatibility.
The semantics of svn_wc_conflict_version_create2() change such that the
conflict victim's repos relpath is allowed to be NULL if the node kind
is 'none'. Previously the API required a canonical path in all cases
and would ASSERT otherwise, a contract which made it impossible to create
conflict versions for nodes which don't exist. The provided revision
number must still be valid in all cases, of course.

* subversion/include/svn_wc.h
  (svn_wc_conflict_version_create2): Update docstring.
   A NULL 'repos_relpath' is now valid if 'kind' is svn_node_none.

* subversion/libsvn_wc/conflicts.c
  (conflict__prepend_location, conflict__read_location): Handle NULL
   repos-relpath fields in conflict description.

* subversion/libsvn_wc/update_editor.c
  (complete_conflict): Create conflict versions for paths which don't exist
   so revision number information will be recorded.

* subversion/libsvn_wc/util.c
  (svn_wc_conflict_version_create2): Accept a NULL repos_relpath if the
   node kind is svn_node_none.

* subversion/svn/util.c
  (svn_cl__node_description): Print an empty path if the victim's kind
   is svn_node_none, instead of printing the ^/... placeholder path.


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