This commit performs the actual change from using typedefs to using newtypes. The ExprId, LatPointId, LatSetId types are especially simple, because: (1) the Merger has compete control over allocating them, and (2) client code only ever needs the equality operator (if it even needs that).
Depends On D146684
Why not supporting an implicit type conversion from the new types to unsigned (but not vice versa) so that they can be used directly for vector/array indices?