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

Follow up of PR #914, #927, #935, #936, #946 and #1005
Several enum types are "enum class" (i.e. typesafe C++ enums), several others are not.
Also making them ": char" should reduce the size of structures using them.

The big changes, mainly in libmsore, are hopefully done, over to the smaller ones in mscore.

Don't merge just yet, will add more commits and use Travis for the tests...