Remove default labels from fully covered switch statements.

Allow compilers to warn when new enum values are added, making
switches no-longer fully-covered.
cmTypeMacro: Add a class to eat the semicolon following the macro use.

Apply the same workaround to the cmCPackTypeMacro. Additionally
change that macro to not use 'class' as a macro parameter.
Remove extra semicolons from C++ code.

Clang based tools running over the code complain about these,
but clang has a fixit for removing them.
Merge topic 'compiler-warning-cleanup' into next

6c190245 Remove extra semicolons from C++ code.
4bef02e7 cmTypeMacro: Add a class to eat the semicolon following the macro use.
ff710539 Remove default labels from fully covered switch statements.