Versions over Strings

Make VersionUtil.parseVersion return Version.emptyVersion when there's an issue, not null. Update all callers. Add VersionUtil.isEmpty to check if version object is null or equal to Version.emptyVersion.