We need to reuse the basic commit receive logic in both the SSH and
the HTTP code in order to support upload over http:// via the new
smart HTTP Git protocol.
Move the bulk of our Receive logic into the new shared ReceiveCommits
class, constructing it on a per-request basis out of the inherited
Git repository and project control instance.
Change-Id: I43ffd343aac5008c0f9446847e37fcb67d818478
Signed-off-by: Shawn O. Pearce <sop@google.com>