Update test runner.
Add support for pre-release versions and their numbers. Refactor code to bring migration logic out of versions.