Patch Set 9: Looks good to me, but someone else must approve; IP review completed

worked on Robins comments:

JGitInternalExceptions is now a runtime exception. I checked all the places where we throw it and think that the users of this API will very likely not able to react effectively on this kind of exception. Maybe they'll catch it and retry the operation.

setCallable() and checkCallable() are still protected. Maybe somebody will subclass commands outside of this package and then we need it to be protected.