Fix .mailmap
Make Index.Remove() diff-based

Note: it means that the paths passed to Remove() are pathspecs, and thus behavior has been aligned with Stage()/Unstage() => calling Remove() by passing a pathspec which doesn't match any paths doesn't throw anymore (breaking change).
Allow passing ExplicitPathsOptions to Index.Remove()

This makes the behavior fully consistent with Index.Stage()/Unstage().
Make Index.Remove() able to remove folders

Fixes #327
Make Index.Remove() able to remove only from index

Fixes #270
Improve support for git rm --cached semantics

Lots of test cases added, to mimic git rm --cached behavior.
Move Index.Remove() tests to a separate file
Switch internal implementation of Index.Remove() to git_index_remove_bypath()
Cleanup ConflictFixture
Add BaseFixture.CloneMergedTestRepo()
Add test to ensure conflicts are cleared when calling Index.Remove()

Beware, this is supported only for files which exist in the workdir (cf. comment in code).