New representation of semilinear sets

This tries to minimize the memory usage by semilinear sets: we never allocate two identical sparse vectors or linear sets.

The current shortcomings are: no simplifier for semilinear sets, only the naive one for linear sets and we don't release memory allocated for sparse vectors and linear sets.