fixed bugs around beta releases

there are 2 minor bugs with beta releases. First, the updater currently thinks that beta releases are newer than the released version.

In other words, that `3.9.6-pre` is newer than `3.9.6`. That was resolved by adding the semantic gem to do the actual calculations.

Another bug was that it would update to the newest beta release. Now it will abort if it is about to install something older than the current release.