Guard Repository.Ignore against invalid parameters

Fix #346
Fix credential acquire callback interop
Merge pull request #348 from jamill/credential_callback_fix

Fix credential acquire callback interop
Teach repo.Ignore.IsPathIgnored() to cope with Windows directory separators

Fix #347
Use Trace.WriteLine when directories cannot be cleaned (in tests)

We were previously raising an exception, which meant that there was no way to know if the test was successful or not.
Eagerly detect unreleased unmanaged resources

This is only active in the LEAKS build configuration.

This helps detect errors that are now more visible since libgit2/libgit2sharp#330
Remove useless GC.SuppressFinalize()
Fix double instantiation of ObjectSafeWrapper
Properly handle unmanaged resources cleanup in Repository constructor
Fix Diff.Compare() Obsolete message
Introduce Repository.Info.Message
Add Repository.Stashes.Add
Add Repository.Stashes.GetEnumerator()
Add implicit cast from GitOid(?) to ObjectId

Also, support marshaling NULL in OidSafeHandle
Use implicit GitOid to ObjectId cast everywhere
Give props to Jon Skeet

Add link back to source Stack Overflow post for the CopyStream
method after obtaining permission from Jon Skeet to include in
LibGit2Sharp.
Throws when HEAD is missing

Fix #351
Revert "Remove useless GC.SuppressFinalize()"

This reverts commit d03bcb995993867f9260f32786ca25d6071d563d.

cf. http://msdn.microsoft.com/en-us/library/ms182269.aspx
Allow commits on any unparented branch
Obsolete IsEmpty property on RepositoryInformation