Fix the standard constructor of DBRule which can't take hasRecursion as input parameter.
Merge branch 'master' into diadem
Implement classes XProgram, XRandomAccessSet and XRuleIndicesCollection.
XRandomAccessSet is a template container which combines functionalities
of vectors and sets. Indeed, it wraps both a set and a vector.
For each object added to the set, an iterator to this object is pushed
into the vector. Hence, the container can't store duplicates, but,
unlike standard sets, it provides sequential access to its elements.
Such a container is exploited to represent rule bodies and rule indices,
because the rewriting algorithm which is going to be implemented needs
to keep efficiently-iterable duplicate-free bodies and rule sets.