Repository.CreateCommit: Allow empty refname for non-update commit

[The documentation](https://libgit2.github.com/libgit2/#HEAD/group/commit/git_commit_create) implies that `refname` _can_ be NULL if you don't want to automatically udpate a ref. This is useful if you want to create a new root commit (without any parents, think a `gh-pages` branch). 

This commit enables users to use the empty string for `refname` to signal a non-updating commit.
Yeah, we should avoid allocating the C string if we're just going to throw away the data. Could you put the allocation into an `else` off of this `if`?