Move around the internals of the Version class

This commit simply moves some of the PA-specific code to a subclass as
they shouldn't even be needed in the perfect scenario.
Modify the display value of the version object

This value should only be displayed at runtime and should not be held
on so it's safe to modify this whenever.