Fixed a compiler bug that caused stray local variable

An IForm can be scanned twice at pass2, when a lambda from locally
defined is inlined before it is scanned normally (See the comment
in pass2/$LET for the details.)  It made local variable reference
count wrong.
Optimize nested let* in certain cases

Effective if let* defines mutable variables.