Ugh, this isn't quite right.  We want things to be ordered case according to the iterator's case sensitivity but we want strict equality.  That is to say that `cmp("README", "readme") != 0` but we also want `cmp("README", "foo")` to order `README > foo` on case insensitive filesystems but `README < foo` on case sensitive ones.

So we really want the sorting of `strcasecmp` with the equality of `strcmp`.

Meh.