On the authzperf branch: Very first step towards faster authz.
Determine the user's aliases and group memberships once and
then use this to evaluate rules in O(1).

Right now, that information is constructed on the fly for each
request and used from the existing matching code.  This overhead
will be eliminated in later commits.  Right now, this is to
introduce new, reviewable / testable code.

* BRANCH-README
  (TODO, DONE): Update.

* subversion/libsvn_repos/authz.c
  (set_add_string): New utility function.
  (add_alias_baton_t,
   add_alias,
   get_aliases): New code to find all aliases to a given user.
  (add_group_baton_t,
   add_group,
   get_group_memberships): New code to create a member->group
                           map for all relevant members.
  (get_memberships): New function using all of the above to build
                     the complete set of "left-side-strings" (names)
                     in the rule lines that a relevant to a given
                     user.

  (authz_lookup_baton): Instead of the plain user use a hash set as
                        constructed above to identify what we want.
  (authz_alias_is_user,
   authz_group_contains_user): Drop the now obsolete dynamic group
                               and alias resolution code. 
  (authz_line_applies_to_user): Greatly simplify by doing a simple
                                hash lookup.
  (authz_get_path_access,
   authz_get_tree_access, 
   authz_get_any_access): Update providing the memberships set
                          instead of the plain user name.


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