Use a struct to represent numerical versions instead of encoding release
names in an enumeration. This avoids the need to extend the enumeration
every time there is a new release.
Rename GetMacosVersion() -> GetMacosAlignedVersion() to better reflect
how this is used on non-MacOS platforms.
clang-format not found in user's PATH; not linting file.