Fix a few bugs.
Take a new approach to creating hierarchies of resources.

The end result is that the Package class takes a single argument: a resource instance.  This handle is used to get the package metadata, and can be serialized and deserialized via plain old data (though that work is not done yet).

Instead of each resource specifying its location on disk relative to the search path, it specifies only its parent resource class.  This new approach makes it possible for resource classes to act as generators for their instances.  This in turn allows us to move the responsibility of the PackageFamily classes to the resource level.