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