Fix negative ignores withing ignored dirs

git has odd ideas about what is possible to negate

    foo
    !foo/bar

does not negate foo/bar and

    foo/*
    !foo/bar
    !foo/baz/quux

negates foo/bar but not foo/baz/quux. Reproduce these rules in libgit2.