Swap out alarm and recovery types for enums

Right now this makes no difference and might seem like additional
overhead, but it has its uses for making good constructors or simply
good methods later on.