Fix space leaks

1. GHC's setSessionDynFlags is leaking, so avoid if possible
   This change means that using package flags in the `ghc-options`
   field of cabal is no longer supported (Who does that, anyway?)

2. The per-file DynFlags are now restored to the old state after the
   file has been checked. This guarrantes that we don't accumulate
   stuff in our DynFlags.
Add emacs .dir-locals.el config