CsgTree: addPrimitive only add primitive

And put it in the leaves set.

Signed-off-by: Celelibi <celelibi@gmail.com>
CsgTree: joinPrimitives may join any two nodes

It is a really bad name for that method. Moreover, set::erase do
absolutely nothing when the element do not exists. Thus, it is safe not
to test its existence.

Signed-off-by: Celelibi <celelibi@gmail.com>
CsgTree: handle the labels and their uniqueness

Every primitive has a label, and it must be unique inside a CsgTree.
We must also be able to find a CsgNode by its label, and the label of a
CsgNode.

Signed-off-by: Celelibi <celelibi@gmail.com>