Allow update of the target of a symbolic reference with another symbolic reference
Introduce Repository.Refs.Log()

returns the reflog of the reference given as parameter
Insert new reflog entry on commit

Fix #371

Insert entry on HEAD and target direct reference on commit
Tag as initial the first commit
Small code refactoring
Make amend on orphaned head throw OrphanedHeadException
Enforce reflog writing test coverage
Test reflog writing when HEAD is detached
Guard against marshaling invalid handle as GitOid

Related: https://bugzilla.xamarin.com/show_bug.cgi?id=11417
Move directory-aware Touch() up into BaseFixture
Support additional paths with temp clone
Add submodule test repo
Add Submodule bindings
Add SubmoduleLazyGroup
Add Repository.Submodules

Includes submodule support in Index.Stage() to fix #220
Support TreeEntry.Target for gitlink entries