Ignore Case via Repository.PathComparer

Round-about path to initial ignore case support.

* [x] Update tests to exercise lookup and such with and without ignoring case.
* [x] Decide between named comparers, `IPathComparable` (implemented in last four commits), or just using `StringPropertyComparer<>` with lambdas.
* [ ] Stuff I'm missing...

Also, I included 9bcc2c1 because I don't want to create a dedicated issue unless I'm not alone... on Win8 I'm seeing sporadic Access Denied errors that I haven't seen in quite a while. Just me, or are others seeing it too? Is a retry worth keeping?