Patch Set 3: I would prefer that you didn't submit this

More tests.  Currently testSlashOnlyMatchesDirectory is broken.  The test is correct according to `man gitignore` so our code is broken.  It seems that IgnoreRule is matching the rule "out/" with "out" even though "out" is a file.