Strongly-typed and extensible RebootType (fixes #128)