Better comparison of numeric version parts

We now (in most cases) separate a version part like `dev4` into two
separate parts: `+dev` and `.4`.  This ensures that `dev4` and `dev10`
compare in the expected way: `dev4` is earlier.  (If we didn't do this,
we compare `dev4` and `dev10` lexicographically, giving the opposite
result.)