Do not allow duplicate elements in parameter/variable lists
Now signal an error when the parameter list in function definitions,
lambda expressions or macro definitions contains duplicate elements.
Likewise for the variable list in blocks.
As discussed on the mailing list, allowing this sort of duplication
does not make sense and it cannot be translated into valid Lisp anyway
(multiple implementations raise errors).
For function and macro definitions, signal the error at the time of
definition. For lambda expressions, signal the error at the time the
expression is simplified. For blocks, signal the error at the time
the block is evaluated.
Also, during translation, check for duplication in lambda expression
and block parameter/variable lists.
The test suite runs fine, with new tests.