Added tests for boot.gitignore matching

Added a set of tests based off gitignore man page description of
gitignore matching. The previous implementation does not pass all these
tests, both because of ** matching being wrong (it should match zero or
more path segs; it did match one or more) but also because of
lead-slashes not being considered. The gitignore.clj code has changed
slightly to fix this.

Given these tests, I believe this implementation not only supports Java
6 and 7, but also is more correct than the previous one.