Properly migrate [gitosis] section
Revert "simulate POST_CREATE for newly created "normal" repos"

This reverts commit bc3eb3421171a432aa62d784709d0b0e319de183.
PRE_ and POST_CREATE should work for normal repos also
the 3 shipped post-create programs should exit when called on a normal repo creation
delete the 'description' file for new repos
gitolite setup learns --hooks-only option
add 2 new sections to "special features"...

  - using pubkeys obtained from elsewhere
  - updating hooks via the admin repo
(collected docfixes)
migrated symbolic-ref command
(BSD compat) apparently 'wc -l' on BSD adds spaces in front

Larry was right.  It's probably easier to port a shell than a shell
script!
lock binary files... (manually tested)

Remember that true locking is not possible in a DVCS; see
doc/locking.mkd for details and limitations of what is offered here.
fix minor bug in handling 'desc = "some description"'

    repo foo
        desc = "foo"
        RW  =   u1
        ...etc...

The order of the clauses was parsing this like the old 'reponame = "some
description"' and end up creating a repo called 'desc'!

It would also, as a side-effect, change the repo so what you thought
were access rules for 'foo' would become access rules for 'desc'.
(doc) document the INPUT trigger
allow pubkey filename as extra argument to command in authkeys
allow getting config settings for non-existant repos also

It's reasonable to want to see config items (for example, mirror
settings) that *would* apply if the repo existed.
'perms' command learns to create repo if needed
(experimental code) push wild repos across a master slave connection

It creates the repo on the remote side (getting the creator name from
the gl-creator file and sending it across), as well as sending gl-perms
on subsequent connections.

This has only been minimally tested.  E.g., complex setups or asymmetric
configs on master and slave, etc. have NOT been tested.

This has also not been tested with redirected pushes.
fixup to pushing wild repos permissions...

  - fix docs to explicitly state that mirroring wild repos is a bad idea
    if the authentication data is not the same on the peers.

  - an important check against a malicious peer was missed out.  If
    people heed the warning above this check is not really needed but it
    is good for completeness.

  - warning about redirected pushes removed, thanks to Ronald Ip having
    tested it and reported it working.
Grant shell access to all keys for shell users

If a user has multiple keys, ssh-authkeys-shell-users will only add the
"-s" flag to the first key it finds.  Change the substitution to apply
to all matching lines and hence grant shell access to all of the user's
keys.

Signed-off-by: John Keeping <john@keeping.me.uk>
minor backward incompat breakage in 'gitolite query-rc'

'gitolite query-rc' now only queries one variable at a time.  That is,
you cannot do something like this:

    gitolite query-rc UMASK GL_ADMIN_BASE

to query both variables.  I think this is rarely used, plus it is easy
to work-around (just run two separate commands), so it was sacrificed
for the ability to do this:

    gitolite query-rc -q COMMANDS fork

which tells you whether $rc{COMMANDS}{fork} exists or not.