This removes the need to walk all objects when creating a new one, since each object can have a private generation counter, unaware of other objects. For compatibility with demos, mix in the object's index when writing the signature value.