Come up with a valid, unique (within the scope of NetNameMap) name based on an existing Net object and (optional) context. The resulting name is stable across multiple calls if given the same pointer.