Memoize the override list method call
Memoize the override list method call

This uses an extra dictionary to memoize the results of asking a
PackageInfo class what its list of overrides are for a given type.

This does not memoize the result of invoking the method for a package
that has no possible overrides currently; that will always still
create and return a new empty set.

The idea is that code that wants to know about the override list may
want to first filter out packages that actually have overrides (since
the only way to tell is to actually look) but still get the list later
on.

OdatNurd/OverrideAudit