Add lexbind test
Add test for handling different ways of passing a function
Replace closure prevention with closure sanitation

"Sanitation" means that if a closure's list of lexical variables
contains any variables with unprintable values, those variables are
removed from the list. When async-debug is on, this also generates a
message about the removed variables.

This solution is arguably more hackish, but should also work in every
case where the "prevent all closures" solution worked as well as some
more cases.