Drop obsolete members after release v0.17.0
Fix some issues pinpointed by Code Analysis
Upgrade to .Net 4.0

Fix #654
Improve marshaling of git oid

Doing a simple copy of the byte array is a lot faster than using
Marshal.PtrToStructure.
Introduce Remote.IsValidName(string)

Deprecate RemoteCollection.IsValidName(string).

Update test CanTellIfARemoteNameIsValid(string, bool).

Fixes #679
Added libgit2 features to Repository.Version

Introduced NativeMethods.Capabilities .

Added CanCreateValidVersionString() test .

Displaced NativeMethods CompiledFeatures to Proxy

Remove irrelevant region on Proxy

Make Proxy.get_compiled_features match get_libgit2_features .

Add mising [Flags] tag on GitBuiltInFeatures .

Remote trailling whitespace in Proxy

Resolves #676
Introduced Reference.IsValidName(string)

Deprecated ReferenceCollection.IsValidName(string) .

Updated Test .

Fixes #680

Fixed typo in [Obsolete] tag.

Rebase into current vNext.
Cleanup whitespaces
Fix Commit() so that it always updates the HEAD

Fix #692
Make Travis build target osx platform
Favor usage of non obsolete methods
Improve CanRetrieveValidVersionString()
in RepositoryFixture

Updated Repository.Version documentation

Updated Repository.Version test
regex now checks each group.

Fixes #696
Fix .mailmap
Update Checkout and Merge options

Checkout methods now use CheckoutOptions

Merge now takes several options:
  - Option to specify what is checked out for file conflicts.
  - Report CheckoutProgress and CheckoutNotify
  - Option to specify MergeFileFavor

Updates for code review feedback
Make Network.ListReferences(Remote) accept Credentials

Add CanListRemoteReferencesWithCredentials() test.
Simplify Travis build script

As travis-ci/travis-ci#2205 is fixed, we don't need the
$TRAVIS_OS_UNAME variable any longer.
Introduce repo.Revert(commit)
Continue implementing revert
Slightly enforce Revert() test coverage
[UpdateLibGit2] Add v12 csproj format to description.