repo.Index.Stage() won't notice a change if it occurs within the same second

The test below actually fails

```csharp
[Fact]
public void CanSuccessfullyStageAModifiedFileOfTheSameSizeWithinTheSameSecond()
{
    string repoPath = InitNewRepository();

    using (var repo = new Repository(repoPath))
    {
        for (int i = 0; i < 10; i++)
        {
            Touch(repo.Info.WorkingDirectory, "test.txt",
                       Guid.NewGuid().ToString());

            repo.Index.Stage("test.txt");

            Assert.DoesNotThrow(() => repo.Commit(
                        "Commit", Constants.Signature, Constants.Signature));
        } 
    }
}
```

See this **[SO question](http://stackoverflow.com/questions/23242825/wait-until-commit-operation-is-finished/23246222#23246222)** for some background information.