Beginning of gitlib-hit (Data.Git) back-end, based on gitlib-cmdline.

Using Hit for open/init repository passes smoke test.
hashContents ported to Hit
createBlob ported to Hit
lookupTree ported to Hit
treeEntry ported to Hit
lookupBlob ported to Hit
existsObject ported to Hit
Merge remote-tracking branch 'upstream/master'

Conflicts:
	sources.txt
Update gitlib-hit to use MonadThrow
Add Data.Git.Storage.Git type to HitRepo representation.

This aligns the Hit `openRepo` and `closeRepo` with the gitlib
`withRepository`, so we don't need the Hit `withRepo` everywhere.
resolveRef ported to Hit.
Merge pull request #1 from league/master

Progress on gitlib-hit
lookupReference ported to Hit.
Merge remote-tracking branch 'upstream/master'
port create/update/deleteReferences to Hit

and other cleanup.
port lookupCommit to Hit
Add a test for createTag in gitlib-test.
Port createTag to Hit
Port createCommit to Hit
Use hit's `Ref` type as `Oid` -- reduces conversions.