Introduce the new representation of UnitId
'SimpleUnitId' constructor renamed to 'UnitId', and augmented with a new field 'Maybe String' recording a hash that uniquely identifies an instantiated unit of the library 'ComponentId'. 'UnitId' can't be used to represent partially instantiated unit identifiers; see Distribution.Backpack for how we handle that. Previous uses of 'SimpleUnitId' should now use 'newSimpleUnitId'. 'unitIdComponentId' folded into a record selector for 'ComponentId'.