Implement storage of the ExtID.extid_version field
This fields allows having multiple version of the ExtID -> SWHID mapping, for instance when the implementation of a loader changes in a backwards-incompatible way.
For now, we don't change the API used to query or store ExtIDs. When querying for the SWHIDs corresponding to a given external objects, all versions are returned, and the client is expected to do the filtering.
Test Plan
adapted tests to check storage of the version field; added test for behavior of multiple identical extids having different versions
Migrated from D6023 (view on Phabricator)