Made globals a mutable hash.

By doing this we can't have CLet work on the global scope. Added a new
local env when CLet is used in global scope as a work-around, assuming
that there won't be any local bindings in let-body.