Harden FSFS parsers against corrupted ID strings. 

Currently, we would simply return a NULL ID in case of invalid input.
That leads to NULL struct members in other places - which is a bad idea.
Make the ID parser follow the usual svn_error_t * return pattern.

* subversion/include/svn_error_codes.h
  (SVN_ERR_FS_MALFORMED_NODEREV_ID): Declare a new error code.

* subversion/libsvn_fs_fs/id.h
  (svn_fs_fs__id_copy): Change signature to return svn_error_t *.

* subversion/libsvn_fs_fs/id.c
  (svn_fs_fs__id_parse): Rename to ...
  (id_parse): ... this and make it static.
  (svn_fs_fs__id_parse): New, error generating wrapper.

* subversion/libsvn_fs_fs/cached_data.c
  (read_dir_entries): Update caller.

* subversion/libsvn_fs_fs/fs_fs.c
  (svn_fs_fs__get_node_origin): Same.

* subversion/libsvn_fs_fs/low_level.c
  (read_change,
   svn_fs_fs__read_noderev): Same.

* subversion/libsvn_fs_fs/recovery.c
  (recover_find_max_ids): Same.

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