add test case for closure hygiene
common abstraction for renaming
implement hygiene for ExprFnBlock