Add a desugar step for implicit Prelude. #224

todo: tests
Move 'hasLanguagePragmas' into Fay.Compiler.Misc
Improve desugarImplicitPrelude following review

* use Biplate functions instead of pattern matching
* respect NoImplicitPrelude pragma
Enable ImplicitPrelude by default
Switch back from uniplate functions

at least until I get them
Don't tell GHC to disable ImplicitPrelude
Tests for implicit prelude
Make Desugar polymorphic again

`Desugar a` changed to `Desugar l a` to allow the desugaring to happen
with any annotation type
add debug stmts for implicit prelude
desugar before processing imports
Revert "add debug stmts for implicit prelude"

This reverts commit b415b95da4d6a7270338d6177c79906b4ba9f831.
try putting desugar before compileImport
compile the right import list
fix broken tests