Lexbind fix redux

I've added a few changes and some tests to my lexbind-fix branch.

Instead of disallowing closures, my code now filters out unprintable variables from closures. This method is strictly better than either my previous fix or the way async worked before that fix, in the sense that it will handle every case that could be handled by either of those methods. As long as the unprintable variable that is filtered out is not actually used within the function (as with the cl-loop lexical variable example), this will work fine. However, if the variable actually is used, it will trigger a cryptic void-variable error when the variable looks like it should be set. This is the major disadvantage of this method.

Let me know if you'd rather prevent closure creation entirely or if you like this better.