Generalized add and remove functions in set.js

The add function is now created with a value2string and
filter function as arguments. This, is my mind, is the
most general way to generate an 'addToSet' function. The
remove function has been generalize in the same way. It
takes not additional arguments to create, instead uses the
value2string function associated with the add function.

The VectorSpace construction was altered to replect these
changes in set.js.

Vector is now a class which returns an array-like object
with additional vector properties.

The zero vector is now a property of the vectorspace
itself and is created during initialization.