store unparsed string version alongside versionspec in ProjectVersionRef to make deserialization faster until comparison or advanced version information is necessary. Also, converting InvalidVersionSpecificationException to RuntimeException to facilitate on-demand parsing from version string.