Experimenting with removal of IRelation.

* For the time the reference implementation is removed.
* Set / Relation unified as Set => 1x data structure, 2x possible dynamic types (PDB Set or PDB Relation).
* Relational operations extracted as static functions.
Linking relational operations to a view on a set (with a partial function).

* Correct naming of project operation (used to be select previously).
* Adding a relational view on Set.
Adding arity() query to IRelationalAlgebra.
Experimenting with removal of IListRelation.

* For the time the reference implementation is removed.
* List / ListRelation unified as Set => 1x data structure, 2x possible dynamic types (PDB Set or PDB Relation).
* Relational operations extracted as static functions.
Experimenting with operations that are closed under one domain.
Adding dynamic type check in case of an empty collection.
Using view instead of static functions for pdb.fast implementation.

Fixes problem with different value factories.
Removal of explicit IRelation and IListRelation types.

Now e.g. a Set can have two different dynamic types: a) RelationType if element type is tuple type, otherwise SetType.
This commit concludes a rebase/merge of the master branch and the flatten-isetorrel branch.