Refactor Build.File using monad transformers
Recompile modules when their dependencies have changed.
Style fixes and -Walls for a couple files.
Merge in @maxsnew's fixes from #424

Tested on small file where I changed a dependency and on elm-lang.org
code.