Deprecate repo.Refs.Move() in favor of repo.Refs.Rename()

Fix #752
Add missing public method xml documentation
Remove optional parameters from IRepository

Fix #779
Deprecate repo.Version in favor of GlobalSettings.Version

Fix #726
Adds support for nCrunch.
Make BuildSignature() throw a descriptive message

When global user.name or user.email is set to an empty value, it will
now throw a LibGit2SharpException with proper explanatory message.
Previously it would throw an ArgumentException with obscure message:
"String cannot be empty\nParameter name: name".
Use a build properties file instead of custom build actions to copy native binaries
Branch.Remote property should not throw

The Branch.Remote property can throw when it attempts to resolve a remote
for a remote-tracking branch, and the remote cannot be found or is
ambiguous. In those situations, Branch.Remote should return null. If there
is a need for the specific exception to be returned, we can look at
transitioning to a method to for this functionality.