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
Add examples/shouldpass
Update docs
#185 Non-function values should not have access to the current binding group
Another example for #185
More code comments
#184 Nested type synonyms now expand properly, type class instances for type synonyms can be found
Free variables calculation, better quantify function.
Fix #181 - implement capture avoiding type substitution properly
Delete 1
Test for function scope issue #186
Fix #186
Bump version, move passing test
Functor instance for Either now #181 is fixed
Update docs
Change the order of some prelude instances
Minimal failure case for runtime scope issue involving type classes
Thunk type class dictionaries to fix the TC equivalent of #185