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 PathspecsOptions to Repository.Diff.Compare()

All the overloads can now report and/or fail upon unmatched pathspecs.
By default, the behaviour is strict (exception thrown if no PathspecsOptions
is passed).
Add PathspecsOptions to Repository.Reset()
Add PathspecsOptions to Repository.Index.Unstage()/Stage()
Clean-up trailing whitespaces

For the psychopath that lies deep down in each one of us.