Add support for type-specific layouts

Adds support for custom layouts by archive type. Addresses #12.