Indices marked as independent seem to implicitly assume a fixed upper/lower contraction when canonicalizing in some cases.

Consider the below example:

```
{a,b,c,d}::Indices(vector, position=independent).
$Y^{c} \Lambda_{b} \Lambda_{a} V_{c}^{a} X_{b}$;
canonicalise(_);
```

This returns

`Y^{a} \Lambda_{b} \Lambda_{c} V_{a b} X^{c}`

apparently shuffling the last indices on V and X (even though they are of independent types) because they are both contracted upon \Lambda's. This is fine if we *always* contract upper/lower but otherwise this is somewhat counterintuitive behavior.

Interestingly, this only happens when the additional tensor Y is present attached to the other index on V.