Introduce collection of clauses.

Clauses can have variables, so that they extend Declaration. But a
specification or a behavior can have a collection of other clauses, such
as a collection of behavior, represented by an identifier.

To build a collection of clauses, we need to instance the Collection
class with a preset clause and post-clone function. For each new offset
in the collection, the associated value is a clone from the preset
clause with the post-clone function applied on this clone. This
mechanism allows us to build modular collection of clauses.