replace CLI GitAPI Implementatoin by alternate JGitAPIImpl
implement "checkout" using JGit
implement add() and commit() using JGit
remove getGitExe() from IGitAPI
let GitAPI implementation create an instance for subdirectory by itself
use JGit commands to implement generic git operations
dead code
use ObjectId to specify commit references
move git-plugin specific logic back to GitSCM
GitAPI cleanup + unit test coverage
Print the actual number of repos changes are being fetched from.

Use repos.size() instead of the (implicit) toString().
some more IGitAPI cleanup and unit test coverage
Don't extends HudsonTestCase (make test quicker)
move git-plugin specific checkout logic (delete local branch then re-create) into GitSCM
document showRevision as API method
run unit tests against both CliGit and JGit API Impl
upgrade JGit
implement tagExists with JGit
simplify GitAPI.push() to only support remoteName
use CLI GitAPI Implementation by default
until JGit one get better test coverage
Merge pull request #131 from thesam/fetchingrepos

Print the actual number of repos changes are being fetched from.
adapted from pull request 130
dead code
Merge remote-tracking branch 'upstream/master'

Upstream missed the correction to the comment in GitAPI.java.  The comment
is incorrect but probably harmless.

Conflicts:
	src/main/java/hudson/plugins/git/client/CliGitAPIImpl.java