internal definitions.
(list-tabulate, iota): check for bad arguments that otherwise
give weird output.
(filter): replaced with a tail-recursive version.
(remove): implement using filter, to make it tail-recursive.
delete!, assoc): don't export until the new bindings have been
created. otherwise "export" thinks they are being re-exported and
a deprecation warning is produced.
(delete-duplicates): Now the first occurrence of an element is
retained, as required.
(member, assoc): Fixed wrong order of equality predicate
application.