Check for duplicate variable names at compilation time.
Including collisions between <param> and <variable>.
Duplicates should be allowed (!) in the sexpr representation, since the
LET syntax makes that natural. When reimplementing variables again
without the current frame list, we should add a test checking that
duplicates work in that situation.
But since XSLT doesn't allow duplicates in the same scope, we let the
parser collect those variables in PARSE-BODY and add an explicit form
allowing the compiler to check them.