Shelving: walk the WC ourself for paths to shelve.
Rather than letting 'diff' do the walking, this prepares for storing binary files by some method other than diff. It also lets us report unshelvable paths.
* subversion/libsvn_client/shelf.c (walk_baton_t, note_shelve, walk_callback, wc_walk_status_multi): New. (write_patch): Walk the WC ourselves. Report whether we shelved anything and how many paths we could not shelve. (svn_client_shelf_save_new_version2): Error if not any paths could not be shelved.