Merge the 'decouple-shelving-cli' branch to trunk.
Add the shelving v2 implementation from Subversion 1.11, as an alternative to the shelving v3 implementation from Subversion 1.12.
They have substantially different pros and cons, so it is beneficial for the user to be able to choose.
Make the shelving CLI version selectable by an environment variable: env. var. not set => shelving v3 enabled SVN_EXPERIMENTAL_COMMANDS=shelf3 => shelving v3 enabled SVN_EXPERIMENTAL_COMMANDS=shelf2 => shelving v2 enabled SVN_EXPERIMENTAL_COMMANDS= => no shelving CLI
Move all experimental APIs to the private namespace.
Part of issue SVN-4775 "Add x- prefix to experimental APIs".
* subversion/include/svn_client.h (svn_client__layout_func_t): Renamed from 'svn_client_layout_func_t'. (svn_client__layout_list): Renamed from 'svn_client_layout_list'. (svn_client_shelf_*): Rename to 'svn_client__shelf_*'.
* subversion/include/private/svn_client_private.h (svn_client__shelf_diff): Track the renames.
* subversion/libsvn_client/diff.c (diff_shelf): Track the renames.
* subversion/libsvn_client/layout.c (client_layout_baton_t, svn_client__layout_list): Track the renames.
* subversion/libsvn_client/shelf.c Track the renames.
* subversion/libsvn_client/status.c (shelf_status): Track the renames.