Clean up Source class hierarchy

Issue #115 resolved
Stephen Abrams
created an issue

Rationalize the Source class hierarchy by using FileSource and DirectorySource in place of ZipFileSource and ZipDirectorySource.