Don't generalize bindings in where clauses

  A first pass on skipping generalization for bindings in a where clause that
lack type signatures.  The tests that fail as a result of this change are either
because of error locations changing, or a changing number of defaulting
warnings.
Make the diff command line absolute
Better partitioning of monomorphic declarations

  Partition out declarations that should be monomorphic, based on what they
reference in the environment; declarations that lack signatures but don't
reference anything in the local environment can still be generalized.
Rename iParams to iLocalEnv
Add block decls to the local environment after partitioning
Merge branch 'master' into wip/mono-binds

Conflicts:
	Makefile
	tests/Main.hs
Make bindings monomorphic based on use of closed values

  Adopt the definition of closed values defined by this post on the ghc blog:

https://ghc.haskell.org/trac/ghc/blog/LetGeneralisationInGhc7
Make sure to pass out the new closed set from inferBinds
Make sure to initialize iClosed with the imported environment
Only return changes to the closed environment
Updated test output for monomorphic bindings
Merge remote-tracking branch 'origin/master' into wip/mono-binds
Test 225 no longer fails, this fixes #5
Thread a flag through to manage let-generalization

  Setting `mono-binds` to `yes` will cause bindings to be made monomorphic when
they don't refer to closed values, and setting `mono-binds` to no will cause
them to always be generalized.
Remove debugging output
Merge remote-tracking branch 'origin/master' into wip/mono-binds
Merge branch 'master' into wip/mono-binds
Better partitioning of the monomorphizing code
Add some tests for the mono-binds feature
Add a test that shows programs that fail with mono-binds