On the authzperf branch:  Fix the prefix / suffix lookup logic.

Assume we have prefixes "a", "ab" and "e" defined and perform
a lookup for "ac".  Binary lookup will point us to "e" which
could be an exact match (but is not in our example).  The closest
match is "ab" but that is not a prefix.  However, all its prefixes
(only "a" in our example) might be prefixes to "ac".

So, if a pattern has a prefix in the same array, link the longest
one of them to it.

* subversion/libsvn_repos/authz.c
  (sorted_pattern_t): New data type for our sorted node arrays.
  (node_pattern_t): Update docstrings.  We use the new type for the
                    COMPLEX array as well to prevent extra coding.
  (compare_node_rule_segment,
   compare_node_path_segment): Update to use the new element type.
  (ensure_node_in_array): Insert elements of the new type; link
                          them later when the array is complete.
  (finalize_up_subnode_array): Update array access.
  (link_prefix_patterns): The new prefix linking logic.
  (finalize_up_tree): Invoke the above.
  (finalize_down_subnode_array): Update array access.
  (add_if_prefix_matches): A new lookup utility.
  (add_prefix_matches): Implement the new prefix chain lookup logic.
  (add_complex_matches): Update array access.

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