Fix case issues and make things pleasant
Fix case issues and make things pleasant

The code as originally written used the os.normcase() method to
attempt to convert filenames to a normalized case, which is needed on
operating system that have non case-sensitive file systems, such as
Windows, with the idea being that "EXec.py" and "exec.py" are equal on
such platforms.

This has the undesired side effect that package overrides are
displayed in lower case on Windows regardless of the file case, which
is irritating, but live-with-able.

However, it turns out that even though MacOS HFS partitions can be
case-sensitive, Python doesn't detect if this is the case or not, and
assumes that the file system *is* case sensitive, even when it's not.

The result is a lot of potential false positives on MacOS without
actually solving the problem that normpath() was meant to fix, while
at the same time being irritating to windows users.

This implements a new PackageFileSet class, which operates as a set
which maintains the insertion order of added data and for which the
entries are case sensitive or not as based on the operating system in
use.

Note that currently the code makes the reverse assumption that Python
makes on its own, due to potential issues w/regards to actually
determining the file system types in question. A setting should
ultimately be provided to override this selection in case the user
knows better.

OdatNurd/OverrideAudit