ModifiedNames are determined by comparing name hashes in two versions of an API representation.

Note that we distinguish between sets of regular (non-implicit) and implicit modified names.
This distinction is needed because the name hashing algorithm makes different decisions based
on whether modified name is implicit or not. Implicit names are much more difficult to handle
due to difficulty of reasoning about the implicit scope.