Remove extra semicolons from C++ code.

Clang based tools running over the code complain about these,
but clang has a fixit for removing them.

Mostly this affects the cmTypeMacro, but there are a few other
rougues after function definitions too.
Remove default labels from fully covered switch statements.

Allow compilers to warn when new enum values are added, making
switches no-longer fully-covered.
Merge topic 'compiler-warning-cleanup' into next

c2229c61 Remove default labels from fully covered switch statements.
51aa63ed Remove extra semicolons from C++ code.