Use metaclass that is capable of copying docstrings
Make the resource providers distinct modules of a package

Keep concrete resource providers independent. This is good practice and
improves extensibility.
Add test for PackageResource.filename()

Extracted files will now be removed after done using.