Reduce the number of null ops for \$x=\$y

Assignment to a reference to a package var or element leaves extra
null ops that I didn’t bother removing before because it was incon-
venient.  And I didn’t think the first iteration of the code needed
to do that.

However, all these ops are doing is taking up memory, so this commit
removes some of them.

For scalar assignment, \$x = ... becomes:

  refassign
    rhs expression...
    ex-srefgen
      ex-list
        ex-rv2sv
          gv

The refassign op uses the GV directly, so we can remove all three ex-
ops on the lhs.  For elements, we have

  refassign
    rhs expression...
    ex-srefgen
      ex-list
        ex-aelem (or -helem)
          rv2av
            expression inside ${...}[0]
          index or key

which means refassign gets three arguments.  To make deparsing easier,
we’ll just remove the ex-srefgen and ex-list, leaving the left-hand
expression under a single node (ex-aelem).

Assignment to lexical scalar references was already obliterating the
left-hand expression completetly.

For list assignment, it’s much harder to do, so I’ll leave it for now.