Initialize the 'svn x-shelf-*' commands programmatically at run time, instead of hard-coding them in svn's main command table.
A step towards decoupling the experimental shelving CLI from the main CLI.
* subversion/svn/cl.h (svn_cl__longopt_t, SVN_CL__LOG_MSG_OPTIONS): Move to here from svn.c. (svn_cl__shelf_*, svn_cl__wc_copy_mods): Remove these declarations. (svn_cl__cmd_table): Change to a pointer.
* subversion/svn/shelf-cmd.c (svn_cl__shelf_*, svn_cl__wc_copy_mods): New 'static', no longer external. (svn_cl__cmd_table_shelf3): New command table, with contents moved to here from svn_cl__cmd_table.
* subversion/svn/shelf-cmd.h New.
* subversion/svn/svn.c (svn_cl__cmd_table_main): Renamed from 'svn_cl__cmd_table'. Move shelf-related entries to svn_cl__cmd_table_shelf3 in shelf-cmd.c. (svn_cl__cmd_table): Change to a pointer. (add_commands): New. (sub_main): Call add_commands(). Rewrite a check because the shelving command functions are no longer externally visible.