We implement the new class set and all basic methods needed to work with sets.
A set is generated from a list. After the generating of a set, the adding of an
element or the union of two sets, automatically every double element is removed
to secure that no element occurs in a set more than once.
There is a comparison operator, we access the operator via the function isEqual.
This function isEqual can be used to compare two elements of the same type
(Set, list, int, bigint, string, intmat, bigintmat, intvec, ring, map, poly, matrix,
ideal, module, vector, resolution) and also works for comparing of int, bigint and
number with each other, similarly for matrix, bigintmat and intmat.
The function size can be used to determine the number of elements.
The + operator is used for the union, the * operator for the intersection.
The operators < and > can be used for inclusion tests.
The print function can be used for printing sets.
Note that the implementation of the underlying data structure and algorithms is
very trivial and will at some point be replaced with something more efficient.