version parsing: fix errors with 3.0.0_pre1
Python < 3.6 randomized the order of keys in dictionaries, unless OrderedDict was used. Use OrderedDict to store the version suffixes.
When the order was randomized, the valid version string 3.0.0_pre1 did not always pass the validation check. The suffix "pre" should always be detected as such, but with the random order, it was sometimes detected as "p" suffix (see below). The following letters "re" are not a valid suffix_no (the number expected to follow the suffix) and so it failed.
suffixes = {
"pre": ["pre", ...],
"post": ["p". ...]
}
Fixes #1711 (closed)