get ldap groups

Add sample script for getting group membership from LDAP.
based on ldapsearch.

(committer added author name as comment in case of questions)
repo-specific hooks: make them upgradable from 3.5.3.1,

also fix a buglet

(tests courtesy milki)
mirroring: save and print mirror-push status...

-   save 'git push --mirror' output if it contains the word 'fatal'
-   allow users and admins to query/print it using 'gitolite mirror status ...'
-   print it if ANY operation on the repo is performed on the master server
ssh-authkeys: make authkey creation warning less scary
access command and rule tracing changes...

*   enable rule tracing by default (it's not an option anymore)
*   make the access command accept non-fq ref names (and fq them internally
    just like parse_refs() does)
*   make continuation-lines compatible with rule tracing
make Time::HiRes optional
unnecessary 'use Getopt::Long' changed to 'require'

the one in Rc.pm must be particularly significant; the test suite was about 12
percent faster after this change!!

(and I found this thanks to mucking around with sysdig ... neat tool!)
writable: status can now be interrogated by script

(also, admin can set individual wild repos' writable status)

code courtesy Michel Bourget (in thread
    writable : adding a 'status' option
on the mailing list)
v3.6
redis caching: please read below

This commit brings in redis caching to Gitolite.

Documentation is not yet done, but briefly:
1.  make sure you have Redis available ('perl -MRedis -e 0' should succeed)
2.  enable caching by uncommenting the "CACHE => 'redis'" line in the rc file

However, this code is not the same as the old "redis" branch (which has now
been deleted).  It is a complete rewrite, much simpler, and much more elegant.
It uses the ideas of memoisation rather than explicit "cache_set" and
"cache_get", and at present memoizes just one function: the access() function
in Load.pm.  That seems to be sufficient for most purposes anyway.
(oops!) new mirror status code assumes too recent perl

As a result, a push fails if *mirroring* for the previous push failed!

If you cannot apply this patch asap, a work around is to remove all files
called "gl-slave-*.status" in repo.git on the server.
warn about 'gitolite setup' losing split keys...

thanks to Jephte Clain for catching this (thread "ssh-authkeys-split not
enabled in gitolite setup" on the mailing list)
redis caching: 'set-default-roles' fix...

flush repo from cache
mirroring: hush mirror status if asked to