Make use of Template Haskell optional

This allows monad-logger to be cross-compiled by a stage 1 GHC compiler or compiled in a platform without `ghc --interactive` support (eg: ARM)

Support can be disabled by invoking cabal with the `--flags="-template_haskell"` option.