When using RelyingPartyRegistration#withRelyingPartyRegistration as a copy constructor, custom data in subclasses cannot be preserved.
Instead of a static copy constructor, we should add a mutate() method that creates a builder based on an existing instances implementation. Then, subclasses of RelyingPartyRegistration can override the implementation to preserve custom data.
This will also ensure custom data like #12685 is preserved even when placeholder resolution is involved.