OldAddress27 represents the address stored prior to version 2.7 in the collections: machines, cloudservices and cloudcontainers. Note that we can reuse this type for the new form because: - `omitempty` on SpaceName means we can set it as "" to remove. - The bson field `spaceid` is the same for the old SpaceProviderId.
and the new SpaceID.
Upgrade accepts an address and a name-to-ID space lookup and returns a new address representation based on whether space name/ID are populated. An error is returned if the address has a non-empty space name that we cannot map to an ID.