Make it possible to clear changelists while reverting nodes by updating the
svn_client_revert2 api.

While this might look like a separate operation, revert does quite some work
to preserve existing changelists during reverts. Making this optional makes
the common revert code more efficient, while at the same time helping GUI
clients that use changelists only for marking changes.

* subversion/include/svn_client.h
  (svn_client_revert3): New function.
  (svn_client_revert2): Deprecate function.
  (svn_client_revert): Use @deprecate as we do it now.

* subversion/include/svn_wc.h
  (svn_wc_revert5): New function.
  (svn_wc_revert4): Deprecate function.

* subversion/libsvn_client/deprecated.c
  (svn_client_revert2): New function.

* subversion/libsvn_client/revert.c
  (revert_with_write_lock_baton): Add variable.
  (revert): Update caller.
  (svn_client_revert2): Rename to ...
  (svn_client_revert3): ... this. Add argument. Update caller.

* subversion/libsvn_wc/deprecated.c
  (svn_wc_revert4): New function.

* subversion/libsvn_wc/revert.c
  (svn_wc__revert_internal): Rename to...
  (revert): ... this. Make static and add argument. Update caller.
  (revert_changelist,
   revert_partial): Add argument. Update caller.
  (svn_wc_revert4): Rename to ...
  (svn_wc_revert5): ... this. Update caller.

* subversion/libsvn_wc/wc.h
  (svn_wc__revert_internal): Remove function that is only used in revert.c.

* subversion/libsvn_wc/wc_db.c
  (revert_baton_t): New struct.
  (op_revert_txn): Use new baton. Handle complete ACTUAL delete.
  (op_revert_recursive_txn): Use baton. Handle complete ACTUAL deletes.
  (svn_wc__db_op_revert): Add argument. Update caller.

* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_op_revert): Add argument.


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