Do not throw away trailing digits for representation

Instead of normalizing 1.0 to 1, we'll continue to keep all of the
digits that a version normally contains so we can more faithfully
recreate it. The compare key will still continue to drop trailing
zeros for comparing versions.
Fix the normalization of letter versions and local versions