Fix bug in assigning elements of struct arrays.

This kind of thing:

    struct S { float x; }
    S a[2];
    a[1] = a[0];

The generated code would not properly copy a[0].x to a[1].x.

LG is submitting this, but the patch is actually from Derek Haase (as is the testsuite case). LG confirms that it fixes the bug, doesn't break anything else, and looks correct.

Congrats on first OSL patch, Derek!