Versioning catalog items (take 2)

Supercedes #92