Update gitfs documentation

This adds all the new authentication options, and also moves most of the
usage examples into the gitfs walkthrough. The walkthrough has also
undergone considerable restructuring.
Add new config parameters for gitfs auth
Add pygit2 auth to gitfs
Fix ssh exec module docstrings

You don't need to end a line in a backslash within a docstring. Besides,
doing so leaves large gaps in the line when rendered by sphinx.
Update gitfs test opts to reflect new gitfs config opts
Actually, pygit2 supports auth in 0.20.3 as well

Allow for a minimum version of 0.20.3. The one difference found so far
is that pygit2.Remote.fetch() returns a class instance starting in
0.21.0, so this commit also changes the logic that checks for the number
of received objects so that it works irrespective of version.
Update docs to reflect pygit2 auth support in 0.20.3
Remove obsoleted variable PYGIT2_TRANSPORTS
Set USERNAME env var manually in test suite

This works around a known issue in GitPython when the USERNAME
environment variable is missing.
D'oh, needed to capitalize USERNAME
Get effective username using pwd.getpwduid()
Merge pull request #15140 from terminalmage/pygit2-auth

Add gitfs authentication support for pygit2>=0.20.3