This patch adds and updates documentation. The most significant
changes are:
* getOrig() and getClosing() can return false. However, this is
only possible for add and remove operations. These have only
one side.
* The constructors of the subclasses are not meant to accept
false, and are in fact never called with false. For the same
reason. Only add and remove operations are allowed to miss
one of the two sides.
Change-Id: I9f45f34945e0297e1ea8d3e8ff9e9c53e60e7706