This allows constructing an operand adaptor from existing op (useful for commonalizing verification as I want to do in a follow up). ValueRange also allows the same code to be used in more instances.
I also addied the ability to use member initializers for the generated adaptor constructors for convenience. It was required for a different version of this but not essential for this one (just matches closer to how one would write the code that is being generated) so I could split it out.