Added CreateBlobFromDisk to Repository.

Based on http://libgit2.github.com/libgit2/#v0.18.0/group/blob/git_blob_create_fromdisk

CreateBlobFromDisk reads a file specified by its path and creates a
blob. The Result of this function is the oid of the blob and not a blob
object. This is to circumvent reading the bytes of the blob into memory.
Added CreateTree to Repository.

CreateTree will create a tree object from an array of TreeEntry. A
TreeEntry should follow have:

* name: the name/path of the file
* id: the id of the blob object
* mode: the mode of the file (as described here: http://libgit2.github.com/libgit2/#v0.18.0/group/treebuilder/git_treebuilder_insert)

This makes use of git_treebuilder_* of libgit2 to create the tree.
Added CreateCommit to Repository.

CreateCommit is based on
http://libgit2.github.com/libgit2/#v0.18.0/group/commit/git_commit_create.

CreateCommit results in the oid of the commit that was created.
CreateCommit is called with the following keys:

* updateref: maps to update_ref and can be unused. (optional)
* author: a signature of the author (optional, committer is used)
* committer: a signature of the committer
* message: the message of the commit
* tree: the id of a tree object
* parents: an array of parents

A signature has the following keys:

* name: the name of the author/committer
* email: the email of the author/committer
* time: the time of the commit (optional)
* offset: timezone offset of the commit-time (optional)