For issue #4330, relax the check added in r1461580 to cover newlines instead
of arbitrary control characters. Also move the check from the FS layer into
the FSFS layer.

This allows BDB filesystems to store filenames which contain newlines again.

It also allows FSFS filesystems to store filenames which contain control
characters other than newlines (I'm not entirely sure this is safe,
but we can solve the problem one character at a time).

* subversion/libsvn_fs/editor.c
  (can_create): Remove svn_path_check_valid() call.

* subversion/libsvn_fs/fs-loader.c
  (svn_fs__path_valid): Remove svn_path_check_valid() call. 

* subversion/libsvn_fs_fs/tree.c
  (escape_newline): New, based on illegal_path_escape from libsvn_subr/path.c.
  (check_newline): New, based on svn_path_check_valid().
  (fs_make_dir, fs_copy, fs_make_file): Prevent new paths which contain
   newlines from being added to the filesystem.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1461701 13f79535-47bb-0310-9956-ffa450edef68
Implement svn_fs_verify_root() for transactions in FSFS.

There is no 'svnadmin' or config file API for this, but the new code will be
run by default in maintainer builds.

* subversion/libsvn_fs_fs/tree.c
  (fs_txn_root_data_t.txn_id): New struct member.
  (make_txn_root): Initialise it.
  (svn_fs_fs__verify_root): Implement for txn roots.

* subversion/libsvn_fs/fs-loader.c
  (svn_fs_commit_txn): Verify TXN just before committing it.


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