Fix for recursive functions using "let" keyword

1)Adding a fix to allow functions which are self recursive and which use the "let" keyword to work properly e.g. : 

(define funcLetAndRecurse 
  X -> (let Z (- X 1) 
         (if (= Z 1) (* 3 X) (funcLetAndRecurse Z))
       )
)

2)Extending smoke tests

3)Adding build script for windows