cpp: Add Enumeration and EnumerationException
cpp: Finish enum template
cpp: Add enum comparison operators and testcase using LaserType