Drop uninteresting information from Exception messages
Introduce default credentials

Abstract Credentials, providing UsernamePasswordCredentials
and DefaultCredentials.
Introduce EmptyCommitException

By default, we now throw an exception when trying to commit an
"empty commit" - that is, one that does not change any items.
This check only applies when doing a normal commit, or an amend
of a normal commit; it does not apply when performing a merge or
an amend of a merge commit.  This check can optionally be overridden.
Introduce CommitOptions

Repository#Commit (and its extension methods) now take CommitOptions.
All prior methods are deprecated.
Short-circuit Committishes for simple identifiers