Prelude additions

Either instance for Functor doesn't work at the moment
Don't clobber global scope

Also generated JS has `use strict` directive, and fixed a missing `var`
when printing `for` statements.
Merge pull request #183 from garyb/master

Potential fix for #182