convert as many "enum" as possible to "enum class", and make them ": char" in the due course #2

Follow up of PR #914.
Several enum types are "enum class" (i.e. typesafe C++ enums), several others are not.
Also making them ": char" should reduce the size of these structures.

Help in converting "enum AlignmentFlags", "enum ArticulationShowIn", "enum ElementFlag", "enum Hidden", "enum Repeat" and "enum SegmentType" into an "enum class" needed... These are used as flags.
Also some help is needed to convert "enum Tpc" and "enum Key" into an "enum class", but for different reasons...

Every single commit passed Travis, even if it doesn't show (anymore, due to rebase and fixing conflicts)