change Alarm to enum class, improve catalog, use variadics

Catalog was overhauled to use much more succinct syntax whereever
possible.  Redundancy was removed, flexibility was improved.

Variadics allow setting of multiple C functions in a single call.