Ensure a side vector's `object` and `VECTORSIDE` are consistent
A side vector belongs to one or two elements. One of them is stored as a
representative in the vector's object member and the side of the
object it belongs to is stored in VECTORSIDE as part of the control
word.
When restoring consistency in ElementObjMkCons this reverse link from
the side vector to the element is restored, but the VECTORSIDE was
not. This can lead to an inconsistent view for side vectors belonging to
two elements:
On the master, let the vector v's representative element be A and
the side of the element be a. Let B (b) be the other
representative and assume a ≠ b. As the vector's control word is
global data (EL_GDATA), the non-master side vectors will also have
VECTORSIDE set to a.
If now ElementObjMkCons is called first for A and then for B, then
v.object will first be set to A, but then B. However VECTORSIDE
is still a!
This change makes sure that VECTORSIDE is also updated alongside the
object pointer. Note that it is (still) not guaranteed that the same
representative is chosen.
Closes #12 (closed)