migrated htpasswd command from g2.

(with some fixups by committer)
git-config bugfix + backward compat breakage in usage of 'config'

(1) the backward compat breakage: you can't create empty-valued config
    keys anymore.  That is, you can't do the eqvt of the following shell
    command using gitolite

        git config foo.bar ""

(2) fixed a bug where this:

        repo foo
            config foo.bar =

    when queried using

        gitolite git-config -r foo .

    would return even the empty valued ones, which -- remember! -- are
    not supposed to exist anymore.

    Fixing this bug allows situations like this to not show the admin
    repo in gitweb:

        repo [a-z].*
            config gitweb.owner = P-h B

        repo gitolite-admin
            config gitweb.owner =

----

background...

Somewhere in g3 (well actually in 057506b), we lost the ability to
distinguish
    config foo.bar  =   ""
from
    config foo.bar =

I decided that conflating them is more intuitive for most people,
because a survey [1] revealed that no one seemed to want the equivalent
of the following shell command:

----

[1] ...of a (small prime greater than 1) number of people on #git
allow info to print description also
bugfix: smart http mode wasn't running pre_ and post_ git triggers

(while we're about it, we also steal Michael Brown's idea (patch #2 in
[1] and get rid of GIT_HTTP_BACKEND).

[1]: http://groups.google.com/group/gitolite/msg/adfae758dd28f2a8
move repo/user validity check deeper

(but change repo check to allow repoPATT instead of just repoNAME)

This is because there are/will be some situations where access() is
called without those two checks being done (i.e., it is not only from
src/commands/access that it is called).
(minor fixup to t/info.t)
the dupkeys function was already in ssh-authkeys...

...so there's no need for the VREF.

Ironically, while I was arguing with Eli that I wouldn't do it and why,
the code was *already* there, and had been for over a month!  (It must
have been there for much longer for me to have forgotten!)

TODO: convert from using fingerprint compute to actual key strings when
the complaints about speed start appearing.

My own personal speed up loop [1] I guess :)

[1]: http://thedailywtf.com/Articles/Classic-WTF-The-Speedup-Loop.aspx
just for kicks, a VREF that allows voting on changes to a branch

(manually smoke tested; no test script)

I've been meaning to do this for a while, since someone told me that is
one of gerrit's features they like.

Of course, gitolite can't/won't do the whole "code review" thing (nor
the workflow enforcement that follows).

But voting is simple -- literally 2-3 lines of code in a VREF.  (The
rest is inline documentation).
(collected docfixes)
simulate POST_CREATE for newly created "normal" repos

See "background" in new program src/triggers/new-normal-repos
allow aliasing a repo to another name

all documentation is inside Alias.pm.
(ssh) make it easier to make give some users a full shell
packaging instructions make analogy with git for better explanation
test packaging instructions and make required changes
v3.02
line up regexes for easier review
move input command check so it works for non-ssh modes also
(minor) single quotes around variables in error messages

(plus a couple of other minor fixups)
update g2 compat and migr info

thanks to karihre on #gitolite for catching the first of the corrections
(GL_GET_MEMBERSHIPS_PGM) and so reminding me...
(minor) permissions fixup -- sugar scripts do not need +x