Optimizer bug fixes:  instance merging, output assignment elision

Two bug fixes:

1. We try to merge multiple identical copies of instances within a shading network by elaborately checking if all their parameters and connections are different. But we overlooked one factor: if the corresponding parameters in the two instances were delcared with DIFFERENT lockgeom overrides.  This could cause confusion for sure, because under such circumstances, the parameters don't mean the same thing in the two instances (one will search for userdata/primvars, the other will not).

2. Elision of output parameter assignments failed to take into account whether the output parameter was a designated renderer output (in which case it obviously MUST perform the assignment, or the value won't be where the renderer needs it to be).